整理下平時CRM開發中用到的一些基本的js操作
取值:
var oResult = Xrm.Page.getAttribute(sFieldName).getValue(); var oResult = Xrm.Page.getControl(sFieldName).getAttribute().getValue();
賦值:
一般類型:Xrm.Page.getAttribute(sFieldName).setValue(object); OptionSet類型: Xrm.Page.getAttribute(sFieldName).setValue(1);//OptionSet的對應選項的Value Lookup類型: Xrm.Page.getAttribute(sFieldName).setValue([{ id:"record id", name: "sValue", entityType: "Entity Name" }]); DateOnly類型: Xrm.Page.getAttribute(sFieldName).setValue(new Date());
提示指定錯誤:
Xrm.Page.getControl(sFieldName).setNotification(sErrorMessage);
清除錯誤提示:
Xrm.Page.getConrol(sFieldName).clearNotification();
設置Read Only:
Xrm.Page.getControl(sFieldName).setDisabled(true);
設置Enable:
Xrm.Page.getControl(sFieldName).setDisabled(false);
控制Tab是否可見:
Xrm.Page.ui.tabs.get("tab_Name").setVisible(true);
控制Section是否可見:
Xrm.Page.ui.tabs.get("tab_Name").sections.get("section_name").setVisible(true);
設置必填:
Xrm.Page.getAttribute(sFieldName).setRequiredLevel("required");
設置可選:
Xrm.Page.getAttribute(sFieldName).setRequiredLevel("none");
設置字段可見:
Xrm.Page.getControl(sFieldName).setVisible(true);
隱藏字段:
Xrm.Page.getControl(sFieldName).setVisible(false);
獲取當前 Entity Id:
var entityId = Xrm.Page.data.entity.getId();
獲取當前 Entity 的 Name:
var entityName = Xrm.Page.data.entity.getEntityName();
獲取當前 User Id:
var userId = Xrm.Page.context.getUserId();
判斷當前 form 的狀態:
if (Xrm.Page.ui.getFormType() == 1){ //1:Create } else{ //0:Undefined //2:Update //3:Read Only //4:Disabled //6:Bulk Edit }
添加事件:
Xrm.Page.getControl(sFieldName).getAttribute().addOnChange(fnOnChange);
有時需要獲取當前頁面,所有賦值字段的情況(Debug需要,比如儅出現unsaved changes):
console.log(Xrm.Page.data.entity.getDataXml());
更多相關語法,可參考官方DOC:https://docs.microsoft.com/en-us/previous-versions/dynamicscrm-2016/developers-guide/gg327828(v=crm.8)