簡體   English   中英

Kendo Grid ClientTemplate 條件欄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM