如何修改特定Kendo下拉列表的选项而不影响共享相同数据源的其他下拉列表?

时间:2016-03-16 08:09:48

标签: kendo-ui

我有3个kendo下拉列表,它共享相同的数据源。我要求从下拉列表中的一个删除特定选项(例如第一个(< - Select - >)),但保留其他两个选项。我尝试使用

删除该选项
  

$(dropDownListObject)。数据( “kendoDropDownList”)dataSource.remove(itemToRemove)

方法,但这从所有下拉列表中删除了该选项。我怎样才能达到这个目的?

Data Source :
-------------------
var data = [
    {Code: "<--Select-->", value:"-1"},
    {Code: "Option 1", value:"1"},
    {Code: "Option 1", value:"2"},
    {Code: "Option 1", value:"3"},
    {Code: "Option 1", value:"4"},
]; 

Snippet where I am trying to remove the option :
-------------------------------------------------------

root.find('.dropdown').each(function (index, item) {
    var dropdown = $(item).data("kendoDropDownList");
    if (dropdown) {
        if ((dropdown.element.attr('removeOption') == "true")) {
            $('#'+dropdown.element.attr('id') + 'option[value="-1"]').each(function () {
                var itemToRemove = $(item).data("kendoDropDownList").dataSource.at(0);
                $(item).data("kendoDropDownList").dataSource.remove(itemToRemove);
            });
        }
    }
});

1 个答案:

答案 0 :(得分:0)

由于克隆是一种选择,我建议创建3个不同的dataSource。这样,所有后面的数据都将是独立的,您不必担心共享数据源中可能发生的任何其他数据操作(例如:过滤或排序)

var data = [
    {Code: "<--Select-->", value:"-1"},
    {Code: "Option 1", value:"1"},
    {Code: "Option 1", value:"2"},
    {Code: "Option 1", value:"3"},
    {Code: "Option 1", value:"4"},
]; 

var dataClone = jQuery.extend(true, {}, data);

//Create your dataSource with dataClone instead of data