[英]Kendo Grid ClientTemplate conditional column
我正在使用带有剑道 UI(剑道网格)的 ASP.NET MVC 4。下面是剑道网格的示例代码 -
@(Html.Kendo().Grid(Model.Users).Name("Grid").Columns(columns =>
{
columns.Bound(p => p.FirstName);
columns.Bound(p => p.LastName);
columns.Bound(p => p.UserName);
columns.Bound(p => p.Email);
columns.Bound(o => o.IsActive).ClientTemplate(links).Title("Action");
})
在上面的代码中,我的 IsActive 列有一些操作的链接,如编辑、更新、删除。我通过链接变量将这些链接添加到 Kendo 网格中。我想根据条件使用链接变量。意味着我想要条件 ClientTemplate这里。
所以有人建议如何在 kendoGrid 中制作有条件的 ClientTemplate ?
2)我还想在我的模型(Model.Users)的布尔字段值的基础上添加条件。
所以我想知道我们如何从每行的剑道网格中的 Model.Users 模型中获取该字段。比如 -
.ClientTemplate(if(IsAdmin && ViewBag.IsActive){.....} else{....})
你可以尝试像下面的代码..也许这对你有帮助..
columns.Bound(p => p.Active).ClientTemplate("\\#if('#=Active#'=='Y') {\\<input type='button' value='OK' />\\}\\#");
或者可以使用
"#= (Active) ? ' ' : 'your code here' #"
您可以使用以下代码:
@(Html.Kendo().Grid(Model.Users).Name("Grid").Columns(columns =>
{
columns.Bound(p => p.FirstName);
columns.Bound(p => p.LastName);
columns.Bound(p => p.UserName);
columns.Bound(p => p.Email);
columns.Bound(o => o.IsActive).ClientTemplate("#if(IsActive){#<a href='javascript:void(0)' >Edit</a>#}#").Title("Action");
})
我正在连接一个名称并使用一个 javascript 函数,这使得条件测试变得更加容易,而且您可以访问多个字段:
cshtml:
@(Html.Kendo().Grid<Debtors>()
.Name("Debtors")
.Columns(columns =>
{
columns.Bound(c => c).Title("Name").ClientTemplate("#=showName(data)#");
columns.Bound(c => c.Busname);
...
})
...
)
js:
function showName(data) {
var returnName = "";
if (data.Lname) {
returnName = data.Lname;
if (data.Fname) {
returnName += ", " + data.Fname;
if (data.Mi) {
returnName += " " + data.Mi;
}
}
}
return returnName;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.