我目前正在开发一个升级项目Dynamics 2011-> 2016,对于下面这段代码,似乎在Dynamics 2016中,如果该值尚未在选项集中定义,则addOption()函数不起作用。使用下面的代码会将值添加到选项集,但无法选择该选项!有没有办法解决这个问题而无需在字段的选项集中静态添加选项?
PopulateCaseTemplateRecords = function () {
//Fetch case template records
var fetchXml =
"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>"
+ "<entity name='new_casetemplate'>"
+ "<attribute name='new_name' />"
+ "<filter type='and'>"
+ "<condition attribute='statecode' operator='eq' value='0' />"
+ "<condition attribute='ownerid' operator='eq-userteams' />"
+ "</filter>"
+ "</entity>"
+ "</fetch>";
//retrieve case templates using asynch call to webapi v8.0
return WebAPI.Proxy.Fetch("new_casetemplates", fetchXml).then(function (retrievedCaseTemplate) {
if (retrievedCaseTemplate) {
if (retrievedCaseTemplate.length >= 1) {
Xrm.Page.getControl("new_case_template").clearOptions();
//Populate the Case template option set on Case
for (var i = 0; i < retrievedCaseTemplate.length; i++) {
var option = new Option();
option.text = retrievedCaseTemplate[i].new_name;
option.value = i;
//Add the new option, Does not work in Dynamics 2016 if option not defined in optionset!
Xrm.Page.getControl("new_case_template").addOption(option);
}
}
}
});
}
答案 0 :(得分:1)
添加无法保存的选项没有意义。根据MSDN:
此方法不会检查您添加的选项中的值是否为 有效。 如果添加无效选项,则无法正常使用。您 必须只添加为特定选项定义的选项 设置控件绑定的属性。使用该属性 getOptions或getOption方法来获取要添加的有效选项对象 使用这种方法。
您可以在文本字段中使用CRM 2016新功能自动完成:https://msdn.microsoft.com/en-us/library/mt607648.aspx
或者,如果您不想保存该值,则可以使用带有html <SELECT>
元素的小iframe与CRM表单进行交互。