在KendoUI multiselect中以编程方式设置值

时间:2014-12-17 16:55:13

标签: kendo-ui

我的KendoUI MultiSelect小部件初始化如下:

 $("#" + key).kendoMultiSelect({
        placeholder: placeholder,
        dataTextField: dataText,
        dataValueField: dataValue,
        filter: "contains",
        autoBind: false,
        dataSource: {
            type: "jsonp",
            transport: {
                read: {
                    url: urlValue
                }
            },
            error: function(e) {
                console.log(e);
            }
        },
        value: GetSavedJSONObject(key),
        //value:  [
                //{ Name: "Chang", Id: 2 },
               // { Name: "Uncle Bob's Organic Dried Pears", Id: 7 }
            //],
        select: removeMark,
        change: multiselect_checkForChanges,
        autoClose: isAutoClose
    });

其中GetSavedJSONObject(key)是这样的对象数组:

[Object { Id=1, Name="AA"}, Object { Id=2, Name="BB"}]

我面临的问题是页面加载时,我可以看到" AA"和" BB"在多选小部件中,不会对网址进行调用。但是,当我尝试向窗口小部件添加更多项目时,没有任何内容可以添加,因为窗口小部件认为唯一可用的项目是我在" value"中指定的项目。初始化期间窗口小部件的字段。

Server Filtering演示中,您将看到该示例设置了小部件的值,就像我一样,但是当您尝试向小部件添加更多项目时,则会调用该网址以获取更多信息数据和小部件打开。

我确定这是用户错误,但我只需要一些关于下一步尝试的指示,以便让小部件显示其余的数据。

编辑: 当我使GetSavedJSONObject(key)返回一个Ids数组时,

[1,2,3]

我能够点击小部件来获取其余数据。但是,期望的结果是能够设置窗口小部件的值(因为我有Id / Name对)没有必须调用数据源能够点击小部件来获取其余的数据)

1 个答案:

答案 0 :(得分:0)

保持我的对象数组并设置serverFiltering:true属性修复了该问题。希望这能节省别人的时间。 叹息