Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 禁用KendoUI下拉列表选项_Html_Kendo Ui - Fatal编程技术网

Html 禁用KendoUI下拉列表选项

Html 禁用KendoUI下拉列表选项,html,kendo-ui,Html,Kendo Ui,如何禁用kendoiu下拉列表的选项? 我在他们的文档中找不到如何实现这一点…基于这个问题,您可以访问相关项目并更改属性,如下所示: var ds = $('#YourCombo').data().kendoComboBox.dataSource; //someIndex is the index of the item in the dataSource ds.data()[someIndex].set("enabled","False"); 像这样试试 $('#YourDropD

如何禁用kendoiu下拉列表的选项? 我在他们的文档中找不到如何实现这一点…

基于这个问题,您可以访问相关项目并更改属性,如下所示:

var ds = $('#YourCombo').data().kendoComboBox.dataSource;

//someIndex is the index of the item in the dataSource
ds.data()[someIndex].set("enabled","False");
像这样试试

    $('#YourDropDown').attr('disabled', 'disabled');

尝试以下方法,会有一些演示:为您的项目使用一个类,它会有条件地向要禁用的项目添加一个类。有关应禁用哪些项的信息来自基础数据对象

HTML:

用于灰显的CSS:

.tbd{
   color:#777777
}

剑道目前不支持这种功能,但这是我发现的最简单的在剑道下拉列表中禁用选项的黑客攻击

$("#" + id + "_listbox .k-item")[index].disabled = true;
其中id->下拉列表的id 索引->要禁用的下拉列表中元素的位置


希望能有帮助。享受:

您可以尝试以下方式:

 var dropDown = $("#yourDropdown").data("kendoDropDownList");
 dropDown.enable(false);

如果要禁用整个控件并且正在使用MVC fluent API,则可以使用.HtmlAttributes方法:

@Html.Kendo()
.DropDownList()
.HtmlAttributes(new { @disabled = "disabled" })

虽然被接受的答案将阻止点击该项目,但它仍然允许键盘导航,感觉相当粗糙

使用DataItems来确定应该禁用哪个项确实是一种方法,但是与其删除click处理程序,不如实现一个将停止链的Select处理程序。此方法由剑道提供:

当用户选择弹出窗口中的项目时激发 鼠标/点击或使用键盘导航

e、 预防默认功能

如果调用,将阻止选择操作。小部件将保留 上一个选定项目

剩下的就是检测我们是否要取消选择,如果您的数据项保留了一个标识其是否可用的属性,那么这就很简单了:

function Select(e) {
    if (e.sender.dataItem(e.item).disabled) {
        e.preventDefault();
    }
}

不需要使用模板来注入特定类,但如果只是为了启用适当的样式,我仍然建议使用模板。

我可以看到这对文本的作用,但不确定禁用该选项是否有效。。下拉列表上是否应该有一些额外的绑定?这会禁用下拉列表,而不是选项。这是可行的,但我正在尝试找到一种动态方法,它似乎不可能完美地为我工作。此解决方案不会阻止键盘导航。看看下面我的答案,你会怎么把这个项目变灰呢?这太疯狂了。。。我喜欢它。。这是一个多么快速完美的计划啊solution@Shardul:您可以尝试此操作,它可以运行$ID.k-item[0]。style.cssText=color:lightgrey这将禁用下拉列表。OP只想禁用一个项目。
Try other way for specific index

var dropDown = $("#color").data("kendoDropDownList");
$("#color" + "_listbox .k-item")[index].disabled = true;
$("#color" + "_listbox .k-item").eq(index).addClass("tbd");

Fiddler for reference :-  http://jsfiddle.net/xLs4n9dm/2/
@Html.Kendo()
.DropDownList()
.HtmlAttributes(new { @disabled = "disabled" })
function Select(e) {
    if (e.sender.dataItem(e.item).disabled) {
        e.preventDefault();
    }
}