gpt4 book ai didi

javascript - 在 CRM 中动态更改选项集值

转载 作者:行者123 更新时间:2023-11-30 07:24:57 25 4
gpt4 key购买 nike

我正在使用 CRM Online 2013。

我试图在特定条件下从选项集中删除 3 个值。默认情况下,选项集有六个选项:它们列在下面我的 JS 代码的顶部。

当我运行我的代码时,出现了正确数量的选项;但他们都说未定义。

Undefined Image example

这是我目前拥有的:

var customer = 100000000;
var partner = 100000001;
var partnerCustomer = 100000002;
var customerAndBeta = 100000003;
var partnerAndBeta = 100000004;
var partnerCustomerAndBeta = 100000005;

function populateBetaOptionSet(beta) {
var options = Xrm.Page.getAttribute("intip_websiteaccess").getOptions();
var pickListField = Xrm.Page.getControl("intip_websiteaccess");

for(i = 0; i < options.length; i++)
{
pickListField.removeOption(options[i].value);
}

if (beta == false) {
pickListField.addOption(customer);
pickListField.addOption(partner);
pickListField.addOption(partnerCustomer);
}

pickListField.addOption(customerAndBeta);
pickListField.addOption(partnerAndBeta);
pickListField.addOption(partnerCustomerAndBeta);
}

这是从另一个连接到单独字段的 onchange 事件的函数调用的。我确信它工作正常,因为我在调用它时获得了正确的 beta 值。

我将在重新添加之前删除所有选项以避免重复。

知道我在这里做错了什么/或者知道更好的方法吗?

最佳答案

重新编写您的函数以符合标准。该选项是一个具有文本和值的对象。这就是您看到未定义(缺少文本)的原因;所以不是

var customer = 100000000 

这是必须的

var customer = { value : 100000000 , text : "Customer" };

下面的代码将每个选项保存在全局范围内,并在您每次调用 populateBetaOptionSet 时使用它

function populateBetaOptionSet(beta) {
var xrmPage = Xrm.Page;
var pickListField = xrmPage.getControl("intip_websiteaccess");
var options = pickListField.getOptions();

//save all options
if (!window.wsOptions)
{
window.wsOptions = {};
wsOptions.customer = pickListField.getOption(100000000);
wsOptions.partner = pickListField.getOption(100000001);
wsOptions.partnerCustomer = pickListField.getOption(100000002);
wsOptions.customerAndBeta = pickListField.getOption(100000003);
wsOptions.partnerAndBeta = pickListField.getOption(100000004);
wsOptions.partnerCustomerAndBeta = pickListField.getOption(100000005);
}

//clear all items
for(var i = 0; i < options.length; i++)
{
pickListField.removeOption(options[i].value);
}

if (beta == false) {
pickListField.addOption(wsOptions.customer);
pickListField.addOption(wsOptions.partner);
pickListField.addOption(wsOptions.partnerCustomer);
}

pickListField.addOption(wsOptions.customerAndBeta);
pickListField.addOption(wsOptions.partnerAndBeta);
pickListField.addOption(wsOptions.partnerCustomerAndBeta);
}

关于javascript - 在 CRM 中动态更改选项集值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20453320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com