Asp.net-Mvc-3
Kendo Grid,顯示帶有客戶端模板的列表
我正在嘗試使用客戶端模板中的 for 循環讓 Kendo 網格顯示值列表,除非它在我嘗試時不斷使網格崩潰。網格如下:
@( Html.Kendo().Grid<ProjectXMVC3.ViewModel.PersonnelIndexViewModel>() .Name("Personnel") .Columns(columns => { columns.Bound(o => o.AssetId).Hidden(); columns.Bound(o => o.Num).Hidden(); columns.Bound(o => o.Name).Width(150); columns.Bound(o => o.Email).Width(200); columns.Bound(o => o.AssetSubType).ClientTemplate("# var j = AssetSubType.length; for(var i = 0; i < j; i++){# #: AssetSubType[i] # #}#" ); columns.Bound(o => o.DateBirth).Format("{0:d}").Width(100); columns.Bound(o => o.Country).Title("Nationality").Width(200); columns.Command(com => { com.Custom("Details").Click("onPersonSelected"); com.Custom("Block").Click("onBlocked"); }); }) .DataSource(d => d .Ajax() .Model(model => model.Id(p => p.AssetId)) .Read(read => read.Action("Read_Personnel", "Personnel")) ))
我可以使用 if 語句來顯示一個單獨的 AssetSubType,但是一旦我進入循環,它就會拋出一個雙六並放棄。AssetSubType 是 ViewModel 的 IEnumerable。
我已經進行了任何排序、過濾等操作。我也是劍道新手。
非常感謝任何幫助…
我遇到了同樣的問題,並通過以下方式解決了它:
首先添加一個新腳本並在其中移動 for 循環:
<script type="text/javascript"> function printAssetSubType(AssetSubType) { var result = ""; var j = AssetSubType.length; for(var i = 0; i < j; i++) { result += AssetSubType[i]; } return result; } </script>然後從列本身引用此腳本:
columns.Bound(o => o.AssetSubType).ClientTemplate("#=printAssetSubType(AssetSubType)#");
您還可以在 PersonnelIndexViewModel 類中添加一個新欄位,並在控制器中準備要在伺服器端顯示的字元串。
控制器:
myViewModel.AssetSubTypeString = String.Join(", ", myAssetSubTypes);看法:
columns.Bound(o => o.AssetSubTypeString);