Kendo MVC Razor Grid Custom Command没有动作定义

时间:2016-06-22 09:18:03

标签: razor kendo-ui asp.net-mvc-5 kendo-grid kendo-asp.net-mvc

我是剑道新手,正在尝试向网格添加自定义命令。 我一直在浏览示例页面,StackOverflow和Telerik的站点,并找到了多个具有以下内容的示例:

columns.Command(command =>
{ 
     command.Custom("Details").Text("Show Details").Action("Details", "Billing"); 
});

当我尝试使用它时,我收到以下错误:

  

'GridCustomActionCommandBuilder'不包含   'Action'的定义和最佳扩展方法重载   'UrlHelperExtensions.Action(IUrlHelper,string,object)'需要一个   “IUrlHelper”类型的接收器

然后我从telerik尝试了这个例子:

columns.Template(@<text>@Html.ActionLink("Edit", "Home", new { id = item.ProductID })</text>);

但是得到这个错误:

  

无法将lambda表达式转换为'string'类型,因为它不是a   委托类型

只是为了确认导致错误的原因,然后取出ActionLink并仅使用它:

columns.Template(@<text>
    <div>help me!!</div>
</text>);

并得到了同样的错误:

总代码段如下所示:

@(Html.Kendo().Grid<OrganisationEmployeesViewModel>()
    .Name("grid")
    .Columns(columns =>
    {
        columns.Bound(p => p.EmployeeID).Visible(false);
        columns.Template(@<text>
                            <div>help me!!</div>
                        </text>);
    })

    .Pageable()
    .Sortable()
    .Scrollable()
    .Filterable()
    .HtmlAttributes(new { style = "height:550px;" })
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(20)
        .Read(read => read.Action("Employees_Read",  "Organisations"))
     )
     .Deferred()
)

我正在使用现有样品,但不知道出了什么问题。

1 个答案:

答案 0 :(得分:0)

我找到了一种方法:

        columns.Template("<a href='" +
            Url.Action("ControllerAction", "Controller") +
            "?Parameter=#= RecID #'" +
        ">DisplayText</a>");

这也可以应用于绑定列,如下所示:

        columns.Bound(p => p.Name).ClientTemplate("<a href = '" +
            Url.Action("Details", "Employees") +
            "/#= EmployeeID #'" +
        ">#=Name#</a>");

您是否希望在Kendo网格上拥有自定义工具栏操作: 我使用标准的bootstrap类来应用默认值:

    .ToolBar(t => t.ClientTemplate("<a class='k-button k-button-icontext k-grid-add' href='" +
            Url.Action("OrganisationCreate", "Employees", new { OrganisationId = Model.OrganisationID }) +
            "'><span class='k-icon k-add'></span>Add new Employee</a>") )