Kendo Grid ClientTemplate条件列

时间:2014-08-27 10:55:01

标签: asp.net-mvc-4 conditional kendo-grid client-templates

我正在使用带有Kendo UI的ASP.NET MVC 4(kendo网格).Below是Kendo Grid的示例代码 -

@(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)的bool字段值的基础上添加条件。

所以我想知道如何从每个行的kendo网格中的Model.Users模型中获取该字段。喜欢 -

.ClientTemplate(if(IsAdmin && ViewBag.IsActive){.....} else{....})

3 个答案:

答案 0 :(得分:3)

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

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

或可能正在使用

"#= (Active) ? ' ' : 'your code here' #"

答案 1 :(得分: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");

})

答案 2 :(得分:0)

我正在连接一个名称,并使用一个javascript函数,这使条件测试变得更加容易,而且您还可以访问多个字段:

using (var db = _stagingConnectionFactory.Open())
{
    var query = db.From<tblActivityImportCalculationQueue>();

    query = query.Where(i => 
        (DateTime.Now - i.LastUpdated.Value).TotalMinutes > 30
    );

    query.ToMergedParamsSelectStatement();
}