這裏有一種方法可以做到這一點:
查看
@(Html.Kendo().DropDownList()
.Name("StructureCompany")
.HtmlAttributes(new { style = "width:180px" })
.DataTextField("Title")
.DataValueField("Id")
.Template("<input type='checkbox' name='cb' value='#:data.Title#' /> #:data.Title#")
.Events(e => e.Select("onSelect"))
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetCascadeCompany", "Company");
});
}))
我刪除您OptionLabel
,因爲它不符合這種風格很好地流動。但是,我發現了一個選擇,因爲你會看到下面
腳本
//This extendes the base Widget class
(function ($) {
var MultiSelectBox = window.kendo.ui.DropDownList.extend({
_select: function (li) { },//Prevents highlighting
_blur: function() { },//Prevents auto close
});
window.kendo.ui.plugin(MultiSelectBox);
})(jQuery);
//Sets up your optional label
$(document).ready(function() {
$("#StructureCompany").data("kendoDropDownList").text("-- Select --");
})
//Does all the functionality
function onSelect(e) {
var dataItem = this.dataItem(e.item);
var ddl = $("#StructureCompany").data("kendoDropDownList");
var cbs = document.getElementsByName("cb");
var display;
var list = [];
for (var i = 0; i < cbs.length; i++) {
if (cbs[i].checked) {
list.push(cbs[i].value);
}
}
if (list.length == 0) {
display = "-- Select --";
}
else {
display = list.join(", ");
}
ddl.text(display);
}
這裏是棘手的部分,我不是一個真正的內行,當涉及到的JavaScript所以原諒我的術語,如果它是錯誤的。具有新範圍函數的第一個Blob允許您繼承kendo.ui
名稱空間,以便您可以更改基本級別的內容。如自動關閉,並強調功能
,明年的blob只是我的替代品有你「OptionLabel」(你可以做你想要的東西)
最後一部分是因爲你可以看到剛纔的選擇創建一個逗號值,然後通過'ddl.text()'方法將其作爲下拉列表中的顯示進行推入。不管你想要什麼,你都可以這樣做。希望這可以幫助!
我想通過複選框選擇多選的kendo下拉列表 –
你解決了你的問題嗎?我建議你使用_Kendo Multiselect_而不是使用_DropDownList_。 –