【问题标题】:How to modify options of a specific Kendo Dropdownlist without affecting other dropdownlist which shares same datasource?如何在不影响共享相同数据源的其他下拉列表的情况下修改特定 Kendo 下拉列表的选项?
【发布时间】:2016-03-16 19:41:45
【问题描述】:

我有 3 个共享相同数据源的剑道下拉列表。我需要从一个下拉列表中删除一个特定选项,例如第一个 (),但对其他两个保留相同。我尝试使用

删除该选项

$(dropDownListObject).data("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);
            });
        }
    }
});

【问题讨论】:

  • 你真的要共享数据源吗?您不能改为克隆数据吗?
  • @The_Black_Smurf : 克隆是我一直在考虑的,但不知道如何克隆驻留在列表缓存中的数据源?我正在填充数据以从列表缓存中下拉列表。你能指导我克隆列表缓存数据的步骤吗?

标签: kendo-ui


【解决方案1】:

由于克隆是一种选择,我建议创建 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

【讨论】:

  • 感谢您的指导。这给了我继续前进的想法。我会努力的。再次感谢您。
猜你喜欢
  • 1970-01-01
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-05
  • 2015-08-19
  • 2014-07-26
  • 1970-01-01
相关资源
最近更新 更多