使用Javascript在CRM 2013中动态向optionset添加选项

使用Javascript在CRM 2013中动态向optionset添加选项,javascript,crm,microsoft-dynamics,Javascript,Crm,Microsoft Dynamics,我有一个CRM 2013表单,其中optionset为空,我需要在加载表单时使用Javascript动态添加选项 在表单的onLoad方法中,我调用jQuery ajax来获取要添加到optionstart的项列表,然后循环遍历结果并调用控件上的addOption方法来添加项 新选项在optionset中显示得很好,但是当我运行表单并选择其中一个动态选项时,选择不会保持不变,所选选项立即变为NULL。它甚至不会触发optionset控件的onChange事件 有人能帮我吗?我觉得这一定是可能的,

我有一个CRM 2013表单,其中optionset为空,我需要在加载表单时使用Javascript动态添加选项

在表单的onLoad方法中,我调用jQuery ajax来获取要添加到optionstart的项列表,然后循环遍历结果并调用控件上的addOption方法来添加项

新选项在optionset中显示得很好,但是当我运行表单并选择其中一个动态选项时,选择不会保持不变,所选选项立即变为NULL。它甚至不会触发optionset控件的onChange事件

有人能帮我吗?我觉得这一定是可能的,因为我已经看到了几十篇动态添加选项的博客文章,我完全遵循了这一点,但它不起作用

function form_Load()
{
    if (!formLoaded) {
        try {
            $.ajax({
                url: TECHNOLOGIES_URL,
                dataType: 'jsonp',
                success: function (response) {
                    $('#results').html(JSON.stringify(response, null, '    '));
                    var children = response.children;
                    var arrayLength = children.length;

                    // update the optionset
                    var xrmPage = Xrm.Page;
                    var pickListField = xrmPage.getControl("et_parenttechnology");
                    for (var i = 0; i < arrayLength; i++) {
                        //add items to parent technology option set
                        var option = { value : children[i].id , text : children[i].name };
                        pickListField.addOption(option);

                    }
                }
            });
        }
        catch (ex) { debugLog("test: " + ex.message); }
    }
    formLoaded = true;
}

无法使用JS添加值。 你必须先添加它们,隐藏它们,然后只显示你想要的。
最后,您必须将添加操作替换为显示操作。

您可以从技术上使用SDK添加和删除选项集值。您可以获取本例中的代码,并在SDK中的SOAPLogger项目中运行它,以获取SOAP请求,而SOAP请求又可以通过JavaScript执行


但是,这会更改字段的系统元数据,而不是建议您通过客户端执行的操作。通过使用答案中的方法创建所有可能的值,然后隐藏它们,您可以将数据保存在其他记录中。如果要实际删除与给定选项关联的元数据,它将从系统中的所有记录中删除该值。

我也面临着完全相同的问题。我对CRM非常陌生。你能详细说明一下你所说的表演操作是什么意思吗?谢谢!您提到…无法使用JS添加值。这是否意味着根本不可能动态添加值,或者仅仅使用JS是不可能的?如果是,是否有其他方法可以动态地向选项集添加值?谢谢,这也是我的问题。