动态添加按钮到Kendo UI Grid MVC

时间:2017-04-12 13:49:56

标签: button model-view-controller kendo-ui grid runtime

我在.net MVC中创建了一个简单的Web应用程序,其中包含一个简单的输入文本框和一个网格(显示一些数据库数据)。

@(Html.Kendo().Grid<Z.ViewModels.ZViewModel>()
    .Name("grid")
    .Columns(columns =>
    {
        columns.Bound(c => c.Number);
        columns.Bound(c => c.AddedDate);
        columns.Bound(c => c.ProcessingMessageText);
        columns.Bound(c => c.ProcessedDate).

    .DataSource(dataSource => dataSource
        .Ajax()
        .Read(read => read.Action("Read", "Home"))
        .PageSize(20)
    )
        )

现在我需要为此页面添加另一个功能...如果在ProcessedDate中没有值(&#34;&#34;),则显示一个带有som自定义功能的按钮(从控制器调用带有参数的操作)列),否则显示值 这可能吗 ?

我尝试了类似ClientTemplate("# if (ProcessingMessageText =='') {# <button>do stuff</button> #} else if (ProcessingMessageText !='') {# ProcessedDate <#}# "); }).Events(e => e.DataBound("onDataBound"))之类的东西,但它没有用。

我有一个更改行颜色的功能......但我不知道如何访问列值......

 function onDataBound(e) {


        var grid = this;
        var currentRecords = grid.dataSource.view();

        for (var i = 0; i < currentRecords.length; i++) {
            //currentRecords[i] is the current dataItem
            if (currentRecords[i].ProcessingMessageText == "Finished") {
                grid.tbody.find("tr[data-uid='" + currentRecords[i].uid + "']").addClass("rowSucess");
          }

             if (currentRecords[i].ProcessingMessageText == "Sent") {
                var row= grid.tbody.find("tr[data-uid='" + currentRecords[i].uid + "']").addClass("rowSent");


            }

            else if (currentRecords[i].ProcessingMessageText == "Error") {
                grid.tbody.find("tr[data-uid='" + currentRecords[i].uid + "']").addClass("rowError");


            }


        }
    }

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

使用调用MVC操作并传递参数(数字)的模板列非常简单。此示例创建一个引导按钮来调用我的控制器并将名为&#39; number&#39;的参数传递给它。使用kendo哈希标记语法。仔细阅读单引号和双引号。:

columns.Template(t => { }).Title(string.Empty).Width(40)
    .ClientTemplate(@"<a href='" + Url.Action("MyAction","MyController") + "?number=#= Number#' class='btn btn-info btn-xs' title='Modify this item'>Edit</a>");

如果字段不为空,则需要添加if语句以显示日期,否则显示按钮。