3

我正在使用带有剑道 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{....})
4

3 回答 3

3

你可以试试下面的代码..这可能对你有帮助..

columns.Bound(p => p.Active).ClientTemplate("\\#if('#=Active#'=='Y') {\\<input type='button' value='OK' />\\}\\#");

或者可以使用

"#= (Active) ? ' ' : 'your code here' #"
于 2014-08-27T11:03:29.407 回答
1

您可以使用以下代码:

@(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");

})
于 2015-03-25T10:10:26.677 回答
0

我正在连接一个名称并使用一个 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;
}
于 2019-11-20T20:10:23.230 回答