我正在使用带有 MVC.NET 的 KendoUI 来创建网格。网格的数据源是对我的控制器的 AJAX 回调。
绑定列上的 TEMPLATE 属性应该允许我使用 RAZOR 模板格式化列。
这一直有效,直到我“打开”ajax。下面的代码说明了这个问题:
@using Kendo.Mvc.UI;
@model IEnumerable<Test>
@{
ViewBag.Title = "Test - Index";
}
<h2>Index</h2>
@{
//public class Test {
// public string A;
// public string B;
//}
var data = new List<Test>() { new Test() { A="a1", B="b1"}, new Test() { A="a2",B="b2"}};
// This one fails to honor TEMPLATE
Html.Kendo().Grid(data).Name("test").Columns(columns => {
columns.Bound("A").Template(@<div>@item.A TEMPLATE APPLIED</div>);
columns.Bound("B");
}).DataSource(ds=>ds.Ajax()).Render(); // THIS BREAKS IT!
// This one honors template
Html.Kendo().Grid(data).Name("test").Columns(columns => {
columns.Bound("A").Template(@<div>@item.A TEMPLATE APPLIED</div>);
columns.Bound("B");
}).Render();
}
此示例中显示了两个网格。第二个网格可以做剃刀模板。第一个无法显示模板化数据。第一个网格只显示原始数据。
注意:我已尽可能简化此代码以说明问题。通常,在调用 Ajax() 方法之后,我还会调用其他方法来设置回调。