我有一个剑道网格如下:
@(Html.Kendo().Grid<ExpenseClaimHeader>()
.Name("Manage-Expense-Type-grid")
.Columns(columns.Bound(o => o.FromDate).Title("From Date").Width(230);
columns.Bound(o => o.ToDate).Title("To Date").Width(230);
})
}
我想根据它所在的View的状态生成列。我有一个模型,它在视图的状态下传递,并根据它,我想添加和删除列。
这样做的最佳方式是什么?
我试图看看我是否可以以某种方式创建一个委托,因为Columns()似乎正在采取行动?
Columns(System.Action<Kendo.Mvc.UI.Fluent.GridColumnFactory<T>>)
我如何在页面中创建此内容?
答案 0 :(得分:1)
您可以将列绑定到任何属性(最好是记录ID),并使用ClientTemplate显示您想要的任何内容:
columns.Bound(o => o.Id).ClientTemplate("#={ ... }#");
如果你想有条件地显示列,只需在一个if语句中包含columns.Bound(),所以它看起来像这样:
@(Html.Kendo().Grid<ExpenseClaimHeader>()
.Name("Manage-Expense-Type-grid")
if({condition}) {
.Columns(columns.Bound(o => o.FromDate).Title("From Date").Width(230);
}
)