私は剣道グリッドにカスタムエディタをいくつか持っています.1つはマルチセレクションです(この1つはhttp://demos.telerik.com/aspnet-mvc/multiselectです)。これは、ページが要求されたときに作成されたのViewDataから得たデータである「bindto」を使用しています剣道ですべてを選択MultiSelect(mvc)
@model IEnumerable<ManageSitesInTemplateViewModel>
@(Html.Kendo().MultiSelectFor(m => m)
.AutoClose(false)
.DataTextField("SiteName")
.DataValueField("SiteId")
.BindTo((IEnumerable<ManageSitesInTemplateViewModel>)ViewData["sites"])
)
:私はそうのように見えるエディタのCSHTMLファイルを持っています。すべてが正常に動作します。問題はありません。 問題は、さまざまな実装を使用して「選択/選択解除」ボタンを実装しようとしていたことです。私は「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>