Dynamics CRM 365 JS 常用语法聚集
1.Xrm.Page.context
用户ID:getUserId()
用户角色:getUserRoles()
用户语言:getUserLcid()
组织名称:getOrgUniqueName()
组织语言:getOrgLcid()
路径参数:getQueryStringParameters()
服务器路径:getServerUrl()/getClientUrl()
当前主题:getCurrentTheme()
2.Xrm.Page.data.entity
所有页面元素:attributes【forEach(),get(),getLength()】
单个元素:attributes.get("")【同Xrm.Page.getAttribute()】
实体名称:getEntityName()
实体ID:getId()
是否修改:getIsDirty()
保存事件:save()
添加保存时事件:addOnSave()
移出保存时事件:removeOnSave()
3.Xrm.Page.getAttribute("") 取值:getValue() 赋值:setValue() 是否改动:getIsDirty() 表单载入时的值:getInitialValue()[Boolean, optionset] 提交类型:getSubmitMode(),setSubmitMode()//always,never,ditry 必填等级:getRequiredLevel(),setRequiredLevel()//required、none 用户操作等级:getUserPrivilege()//canCreate()、canRead()、canUpdate() 事件:addOnChange(),removeOnChange(),fireOnChange()[强制执行] 其他:getAttributeType(),getFormat(),getMax(),getMaxLength(),getMin(),getName(),getParent(),getPrecision() optionset:getOption(),getOptions(),getSelectedOption(),getText()
4.Xrm.Page.getControl("") 属性:getAttribute()【同Xrm.Page.getAttribute()】 禁用/启用:setDisabled(true),setDisabled(false),getDisabled() 显示/隐藏:setVisible(true),setVisible(false),getVisible() 描述:setLabel(),getLabel() 聚焦选中:setFocus 刷新:refresh()//仅限SubGrid 其他:addCustomView(),addOption(),removeOption(value),clearOptions(),getControlType(),getData(),setData(),getDefaultView(),setDefaultView(),getName(),getParent(),getSrc(),setSrc(),getInitialUrl(),getObject()
5.Xrm.Page.ui 页面所有控件:controls【forEach(),get(),getLength()】 单个控件:controls.get("")【同Xrm.Page.getControl()】 页面Tab:tabs【forEach(),get(),getLength()】 单个Tab:tabs.get()【sections,getDisplayState(),getLabel(),getName(),getParent(),getVisible(),setDisplayState(),setFocus(),setLabel(),setVisible()】 Tab-Sections:tabs.get(0).sections【forEach(),get(),getLength()】 单个Section:tabs.get(0).sections.get(0)【getLabel(),getName(),getParent(),getVisible(),setLabel(),setVisible(),controls】 页面导航:navigation.items【forEach(),get(),getLength()】 单个导航:navigation.items.get()【getId(),getLabel(),getVisible(),setFocus(),setLabel(),setVisible()】 窗体:formSelector.items【forEach(),get(),getLenght()】 单个窗体:formSelector.items.get()【getId(),getLabel(),navigate()-窗体跳跃】
6.窗体状态 var FORM_TYPE_CREATE = 1; var FORM_TYPE_UPDATE = 2; var formType = Xrm.Page.ui.getFormType();
7.刷新当前页面: window.location.href = window.location.href; window.location.reload();
8.禁用页面所有控件:
Xrm.Page.ui.controls.forEach(function (control, index) { control.setDisabled(true); });
function LockAllControl() { var controls = Xrm.Page.ui.controls.get(); for (var i in controls) { var control = controls[i]; if (control.getControlType() != "iframe" && control.getControlType() != "webresource" && control.getControlType() != "subgrid" && control.getDisabled() == false) { control.setDisabled(true); } } }
9.防止保存事件(需要执行上下文): function My_PreventSaveFunction(eContext) { eContext.getEventArgs().preventDefault(); }
10.给Lookup取值赋值:var objList = new Array(); var obj = new Object(); obj.id = accountObj[0].TerritoryId.Id; obj.name = accountObj[0].TerritoryId.Name; obj.typename = accountObj[0].TerritoryId.LogicalName; objList[0] = obj; Xrm.Page.getAttribute("yto_territory").setValue(accountObj[0].TerritoryId.Id == null ? null : objList); Xrm.Page.getAttribute("yto_territory").setSubmitMode("always"); Xrm.Page.data.entity.save();
11.保存记录时将被发送到服务器的 XML 的字符串。 只有字段中已更改的数据被设置到服务器。
Xrm.Page.data.entity.getDataXml()
12.调用CRM的操作
//【激活】和【退回线索公海】按钮 function SetActive_GHAction(itype) { var parameters = {}; parameters.itype = itype; parameters.leadid = leadid; var req = new XMLHttpRequest(); req.open("POST", parent.Xrm.Page.context.getClientUrl() + "/api/data/v9.0/scw_SetActive_GHAction", false); req.setRequestHeader("OData-MaxVersion", "4.0"); req.setRequestHeader("OData-Version", "4.0"); req.setRequestHeader("Accept", "application/json"); req.setRequestHeader("Content-Type", "application/json; charset=utf-8"); req.onreadystatechange = function () { //debugger; if (this.readyState === 4) { req.onreadystatechange = null; if (this.status === 200) { var results = JSON.parse(this.response); alert(results.message); window.location.reload(); //刷新界面 } else { var results = JSON.parse(this.response); Xrm.Utility.alertDialog(results.error.message); } } }; req.send(JSON.stringify(parameters)); }
13.显示正在操作,锁定界面
Xrm.Utility.showProgressIndicator('loading');
Xrm.Utility.closeProgressIndicator();
记得收藏并关注,掌握更多相关知识!!!