我有一個自定義編輯器的kendo網格,其中一個是多選(這個是http://demos.telerik.com/aspnet-mvc/multiselect)。我有一個看起來像這樣的編輯器CSHTML文件:「全選」在Kendo MultiSelect(mvc)
@model IEnumerable<ManageSitesInTemplateViewModel>
@(Html.Kendo().MultiSelectFor(m => m)
.AutoClose(false)
.DataTextField("SiteName")
.DataValueField("SiteId")
.BindTo((IEnumerable<ManageSitesInTemplateViewModel>)ViewData["sites"])
)
,使用「bindto」,這是從得到的ViewData數據請求頁面時創建。一切正常,就好像沒問題。 問題是我一直在試圖實現一個「選擇/取消全選」按鈕使用各種實現無濟於事。我懷疑這是因爲我使用「bindto」。 這是一些我已經試過例子:
How can we implement select All option in Kendo MultiselectFor
http://www.telerik.com/forums/select-all-items-after-data-is-read
我可以得到按鈕正確選擇一切,但被選中的一切,當我嘗試保存在網格上的條目,該行爲不被解僱。沒有任何反應,選擇重置。如果我手動選擇,仍然有效。
這是怎麼回事?自定義編輯 全碼:
@model IEnumerable<ManageSitesInTemplateViewModel>
@(Html.Kendo().MultiSelectFor(m => m)
.AutoClose(false)
.DataTextField("SiteName")
.DataValueField("SiteId")
.BindTo((IEnumerable<ManageSitesInTemplateViewModel>)ViewData["sites"])
)
<button class="k-button" id="selectall123">Select All</button>
<script type="text/javascript">
$(document).ready(function() {
$("#selectall123").on('click', function (e) {
e.preventDefault();
var multiselect = $('#Sites').data("kendoMultiSelect");
var all = $.map(multiselect.dataSource.data(), function (dataItem) {
return dataItem.SiteId;
});
multiselect.value(all);
});
});
</script>