是否可以禁用DropDownList中的条目? 例如,我可以阻止用户选择“请选择”条目。
答案 0 :(得分:3)
Kendo目前不支持此类功能,但这是我发现在Kendo Dropdown中禁用选项的最简单的黑客攻击。
$("#" + id + "_listbox .k-item")[index].disabled = true;
其中id - >您的下拉列表的ID
index - >要禁用的下拉列表中元素的位置。
希望它有所帮助。享受:)
答案 1 :(得分:2)
您可以通过Select-Event禁用此选项。
这很简单:
$('input').kendoComboBox({
dataTextField: 'text',
dataValueField: 'id',
dataSource: {
transport: {
read: function(options) {
//instead, specify ajax call or get data from somewhere else
options.success([{ id: -1, text: 'Please select' }, {id: 1, text: 'A'}]);
}
}
},
select: function(e) {
var dataItem = this.dataItem(e.item.index());
if(dataItem.id === -1) {
e.preventDefault();
}
}
});
答案 2 :(得分:2)
我相信这是一项验证工作。如果你必须在下拉列表中显示不可选择的条目,请给它们不同的css(灰色它们),并且一旦选择了值,就采取一些操作 - 验证消息。通过下拉列表取消选择或执行任何其他技巧会使用户感到困惑。如果你有机会从下拉列表中删除这些项目,如果无法选择它们就不要显示它们 - 正如RGraham建议的那样。下面是一个如何验证可选标签(您要求“请选择”)条目以及如何在更改后获取所选值的示例,这应该可以帮到您。
小提琴:http://jsfiddle.net/vojtiik/KpMk4/1/
// create DropDownList from input HTML element
var ddl = $("#color").kendoDropDownList({
dataTextField: "text",
dataValueField: "value",
dataSource: data,
index: 0,
optionLabel: "Select color...",
change: function () {
validator.validate();
if (ddl.value() == 3)
{
console.log('Do something ?');
}
}
}).data("kendoDropDownList");
var validator = $("#color").kendoValidator().data("kendoValidator");
答案 3 :(得分:0)
在我的情况下,如果用户没有授权,我必须禁用下拉选项。我无法禁用此选项,但我已删除此选项。愿这段代码可以帮到你。
@(Html.Kendo().DropDownListFor(i => i.CallTypeId)
.Name("CallTypeId")
.HtmlAttributes(new { style = "width:100%" })
.DataTextField("MasterValueName")
.DataValueField("MasterValueId")
.Events(x => x.Open("ManageSecurity"))
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetCallType", "Common", new { Area = "" });
});
})
.OptionLabel("Select Call Type")
)
function ManageSecurity() {
debugger;
var result = '@TrackingHelper.CurrentUser.IsViewTestCallType';
if (result == "False") {
var ds = $("#CallTypeId").data("kendoDropDownList").dataSource;
debugger;
var elementToRemove = null;
for (var i = 0; i < ds._data.length; i++) {
var element = ds._data[i];
debugger;
if (ds._data[i].MasterValueId === "335d2eae-dc47-40f7-b616-a2501b2f60bc") {
debugger;
elementToRemove = ds._data[i];
}
}
if (elementToRemove) {
debugger;
ds.remove(elementToRemove);
}
}
else {
debugger;
}
}