Kendo ui 剑道UI网格(带MVC包装):如何创建导航到详细信息页面的按钮

Kendo ui 剑道UI网格(带MVC包装):如何创建导航到详细信息页面的按钮,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我一直在使用ASP.NET MVC套件的剑道用户界面,但我不知道如何做一些我觉得非常简单的事情 我有一个加载客户信息的基本网格:姓名、电话、传真、网站等。 我希望最右边的列是一个编辑按钮,它只调用Details操作结果,并将单击它的当前行的id传递给它 我真的不想在这里问这个问题,但是所有的例子都涉及内联编辑和弹出式编辑 以下是我目前的代码: @(Html.Kendo().Grid<CustomerViewModel>() .Name("CustomerGrid") .Columns

我一直在使用ASP.NET MVC套件的剑道用户界面,但我不知道如何做一些我觉得非常简单的事情

我有一个加载客户信息的基本网格:姓名、电话、传真、网站等。 我希望最右边的列是一个编辑按钮,它只调用Details操作结果,并将单击它的当前行的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"))
))
@(Html.Kendo().Grid())
.Name(“CustomerGrid”)
.列(列=>{
columns.Bound(c=>c.Name);
columns.Bound(c=>c.Phone);
columns.Bound(c=>c.Fax);
columns.Bound(c=>c.Website);
})
.Pageable(Pageable=>Pageable
.刷新(真)
.页面大小(真)
.按钮计数(5))
.DataSource(DataSource=>DataSource
.Ajax()
.Read(Read=>Read.Action(“Customers\u Read”,“Customer”))
))
  • 解决方案

    @(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"))
    ))
    
    @(Html.Kendo().Grid())
    .Name(“CustomerGrid”)
    .列(列=>{
    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
    .刷新(真)
    .页面大小(真)
    .按钮计数(5))
    .DataSource(DataSource=>DataSource
    .Ajax()
    .Read(Read=>Read.Action(“Customers\u Read”,“Customer”))
    ))
    
  • 解决方案

    @(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"))
    ))
    
    @(Html.Kendo().Grid())
    .Name(“CustomerGrid”)
    .列(列=>{
    columns.Bound(c=>c.Phone);
    columns.Bound(c=>c.Fax);
    columns.Bound(c=>c.Website);
    columns.Command(Command=>Command.Custom(“ViewDetails”)。单击(“location.href='@Url.Action(“ViewCustomerDetail”,“Customer”,new{CustomerId=#=CustomerId}”);
    })
    .Pageable(Pageable=>Pageable
    .刷新(真)
    .页面大小(真)
    .按钮计数(5))
    .DataSource(DataSource=>DataSource
    .Ajax()
    .Read(Read=>Read.Action(“Customers\u Read”,“Customer”))
    ))
    

  • 非常感谢你。我还没有对此进行测试,但我假设它会成功,因此客户的姓名会链接到“客户详细信息”页面。有没有任何方法可以轻松地使用网格编辑按钮或自定义命令按钮来完成它?效果很好,我有一种感觉,它只是一些在网格模板中编织的MVC razor代码。再次感谢。解决方案2导致错误。我试图修复引号,但出现了错误:
    columns.Command(Command=>Command.Custom(“ViewDetails”)。单击(“location.href=”+@Url.Action(“Details”,“Customer”,new{id=“#:CustomerID}+”)您始终可以创建一个javascript函数…columns.Command(Command=>Command.Custom(“ViewDetails”)。单击(“ViewClickFunction”)。是的,我尝试创建一个接受客户id并执行location.href的js函数,并将其放入其中。单击(“VewDetails”(#:CustomerID#”).看起来对吗?我还想问一下#=和#:标记之间的区别是什么?您在解决方案2中使用了#=。很抱歉再次打扰您,伙计。