Kendo-UI Grid(带MVC Wrappers):如何创建导航到详细信息页面的按钮

时间:2014-05-28 03:18:39

标签: kendo-ui kendo-grid

我一直在使用用于ASP.NET MVC套件的Kendo UI,并且无法弄清楚如何做一些我认为非常简单的事情。

我有一个加载客户信息的基本网格:姓名,电话,传真,网站等。 我希望最右边的列是一个编辑按钮,它只是调用Details Action Result,向它传递它所单击的当前行的id。

我真的不想在这里问这个问题,但所有的例子都涉及内联编辑和弹出编辑。

以下是我目前的代码:

@(Html.Kendo().Grid<CustomerViewModel>()
.Name("CustomerGrid")
.Columns(columns => {
    columns.Bound(c => c.Name);
    columns.Bound(c => c.Phone);
    columns.Bound(c => c.Fax);
    columns.Bound(c => c.Website);
})
.Pageable(pageable => pageable
    .Refresh(true)
    .PageSizes(true)
    .ButtonCount(5))
.DataSource(dataSource => dataSource
    .Ajax()
    .Read(read => read.Action("Customers_Read", "Customer"))
))

1 个答案:

答案 0 :(得分:2)

  1. 解决方案

    @(Html.Kendo().Grid<CustomerViewModel>()
    .Name("CustomerGrid")
    .Columns(columns => {
        columns.Bound(c => c.Name).ClientTemplate("" + @Html.ActionLink("#: Name#", "ViewCompanyDetails", "Company", new {companyId = "#: CompanyId#"}, new {Title = "View #: CompanyName#"}) + "");
        columns.Bound(c => c.Phone);
        columns.Bound(c => c.Fax);
        columns.Bound(c => c.Website);
    })
    .Pageable(pageable => pageable
        .Refresh(true)
        .PageSizes(true)
        .ButtonCount(5))
    .DataSource(dataSource => dataSource
        .Ajax()
        .Read(read => read.Action("Customers_Read", "Customer"))
    ))
    
  2. 解决方案

    @(Html.Kendo().Grid<CustomerViewModel>()
    .Name("CustomerGrid")
    .Columns(columns => {
        columns.Bound(c => c.Phone);
        columns.Bound(c => c.Fax);
        columns.Bound(c => c.Website);
        columns.Command(command => command.Custom("ViewDetails").Click("location.href='@Url.Action("ViewCustomerDetail", "Customer", new { CustomerId = #=CustomerId# })'"));
    
    })
    .Pageable(pageable => pageable
        .Refresh(true)
        .PageSizes(true)
        .ButtonCount(5))
    .DataSource(dataSource => dataSource
        .Ajax()
        .Read(read => read.Action("Customers_Read", "Customer"))
    ))