0

我目前正在处理升级项目 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); 
                }
            }
        }
    });
}
4

1 回答 1

2

添加无法保存的选项是没有意义的。根据 MSDN:

此方法不会检查您添加的选项中的值是否有效。如果您添加无效选项,它们将无法正常工作。您只能添加已为控件绑定到的特定选项集属性定义的选项。使用属性 getOptions 或 getOption 方法来获取要使用此方法添加的有效选项对象。

您可以利用 CRM 2016 新功能自动完成文本字段:https ://msdn.microsoft.com/en-us/library/mt607648.aspx

或者,如果您不想保存该值,您可以使用带有 html<SELECT>元素的小型 iframe 与 CRM 表单交互。

于 2016-02-15T16:07:58.280 回答