Kendo ui 如何在不影响共享相同数据源的其他Dropdownlist的情况下修改特定Kendo Dropdownlist的选项?
我有3个剑道下拉列表,它们共享相同的数据源。我需要从dropdownlist中删除一个特定的选项,比如第一个()选项,但在其他两个选项中保留相同的选项。我尝试使用删除该选项 $(dropDownListObject).data(“kendoDropDownList”)数据源.remove(itemToRemove) 方法,但这从所有dropdownlist中删除了该选项。我怎样才能做到这一点Kendo ui 如何在不影响共享相同数据源的其他Dropdownlist的情况下修改特定Kendo Dropdownlist的选项?,kendo-ui,Kendo Ui,我有3个剑道下拉列表,它们共享相同的数据源。我需要从dropdownlist中删除一个特定的选项,比如第一个()选项,但在其他两个选项中保留相同的选项。我尝试使用删除该选项 $(dropDownListObject).data(“kendoDropDownList”)数据源.remove(itemToRemove) 方法,但这从所有dropdownlist中删除了该选项。我怎样才能做到这一点 Data Source : ------------------- var data = [ {
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”},
{代码:“选项1”,值:“1”},
{代码:“选项1”,值:“2”},
{代码:“选项1”,值:“3”},
{代码:“选项1”,值:“4”},
];
尝试删除选项的代码段:
-------------------------------------------------------
root.find('.dropdown')。每个(函数(索引,项){
var下拉列表=$(项目).data(“kendoDropDownList”);
如果(下拉列表){
if((dropdown.element.attr('removeOption')=“true”)){
$(“#”+dropdown.element.attr('id')+”选项[value=“-1”]”)。每个(函数(){
var itemToRemove=$(item.data(“kendoDropDownList”).dataSource.at(0);
$(item).data(“kendoDropDownList”).dataSource.remove(itemToRemove);
});
}
}
});
由于克隆是一种选择,我建议创建3个不同的数据源。这样,后面的所有数据都将是独立的,您不必担心在共享数据源中可能发生的任何其他数据操作(例如:筛选或排序)
var数据=[
{代码:,值:“-1”},
{代码:“选项1”,值:“1”},
{代码:“选项1”,值:“2”},
{代码:“选项1”,值:“3”},
{代码:“选项1”,值:“4”},
];
var dataClone=jQuery.extend(true,{},data);
//使用dataClone而不是data创建数据源
您真的必须共享数据源吗?你不能改为克隆数据吗?@the_Black_Smurf:克隆是我一直在考虑的,但我不知道如何克隆驻留在列表缓存中的数据源?我正在从列表缓存填充要下拉列表的数据。你能告诉我克隆列表缓存数据的步骤吗?谢谢你的指导。这给了我继续前进的想法。我会努力的。再次感谢你。
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