我们经常要在客户端进行数据查询,下面分别比较常用的几种查询方式:XMLHttpRequest, SDK.JQuery, SDK.Rest.
XMLHttpRequest是最基本的调用方式,JQuery和Rest的二种方式其实也是用的XMLHttpRequest,只不过是把它封装了一下
JQuery和Rest二种方式的接口一样,所以调用方式也一样
1. XMLHttpRequest
1: function ODataRetrieve(oDataString) {
2: var ServerUrl = Xrm.Page.context.getClientUrl();
3: if (ServerUrl.match(/\/$/)) {
4: ServerUrl = ServerUrl.substring(0, ServerUrl.length - 1);
5: }
6: var retrieveReq = new XMLHttpRequest();
7: retrieveReq.open("GET", ServerUrl + "/XRMServices/2011/OrganizationData.svc/" + oDataString, false);
8: retrieveReq.setRequestHeader("Accept", "application/json");
9: retrieveReq.setRequestHeader("Content-Type", "application/json;charset=utf-8");
10: retrieveReq.send();
11: return JSON.parse(retrieveReq.responseText).d;
12: }
1: var retrievedContact = ODataRetrieve("ContactSet(guid'" + ContactAttribute.getValue()[0].id + "')?Select=JobTitle,MobilePhone");
2: if (retrievedContact != null) {
3: ContactJobAttribute.setValue(retrievedContact.JobTitle);
4: ContactPhoneAttribute.setValue(retrievedContact.MobilePhone);
5: }
2. SDK.JQuery
1: retrieveRecord: function (id, type, select, expand, successCallback, errorCallback)2: retrieveMultipleRecords: function (type, options, successCallback, errorCallback, OnComplete)
1: SDK.JQuery.retrieveRecord(
2: AccountId,
3: "Account",
4: null, null,
5: function (account) {
6: writeMessage("Retrieved the account named \"" + account.Name + "\". This account was created on : \"" + account.CreatedOn + "\".");
7: updateAccount(AccountId);
8: },
9: errorHandler
10: );
11:
1: SDK.JQuery.retrieveMultipleRecords(2: "Contact",
3: "$select=ContactId,FullName&$top=1",
4: function (results) {
5: var firstResult = results[0];6: if (firstResult != null) {
7: primaryContact = results[0];8: }9: else {
10: writeMessage("No Contact records are available to set as the primary contact for the account.");
11: }12: },13: errorHandler,14: function () {
15: //OnComplete handler16: }17: );18:
3. SDK.Rest
1: retrieveRecord: function (id, type, select, expand, successCallback, errorCallback)2: retrieveMultipleRecords: function (type, options, successCallback, errorCallback, OnComplete)
1: SDK.REST.retrieveRecord(
2: AccountId,
3: "Account",
4: null,null,
5: function (account) {
6: writeMessage("Retrieved the account named \"" + account.Name + "\". This account was created on : \"" + account.CreatedOn + "\".");
7: updateAccount(AccountId);
8: },
9: errorHandler
10: );
11:
1: SDK.REST.retrieveMultipleRecords(2: "Contact",
3: "$select=ContactId,FullName&$top=1",
4: function (results) {
5: var firstResult = results[0];6: if (firstResult != null) {
7: primaryContact = results[0];8: }9: else {
10: writeMessage("No Contact records are available to set as the primary contact for the account.");
11: }12: },13: errorHandler,14: function () {
15: //OnComplete handler16: }17: );18:
Dynamic CRM 2013学习笔记 系列汇总