0

我正在使用 Telerik MVC 扩展版本 2012.1.419.340。我在网格中的命令列有问题。我将使用 Telerik 网站上的示例代码来解释我的问题。

我有这样的看法:

@model IEnumerable<Order>
@(Html.Telerik().Grid(Model)
.Name("Grid")
.Columns(columns =>
{
    columns.Bound(o => o.OrderID).Width(100);
    columns.Bound(o => o.ShipAddress);
    columns.Command(commands => commands
                .Custom("viewDetails")
                .Text("View Details")
                .DataRouteValues(route => route.Add(o => o.OrderID).RouteKey("orderID"))
                .Ajax(true)
                .Action("ViewDetails", "Grid"))
            .HtmlAttributes(new { style = "text-align: center" })
            .Width(150);
})
.ClientEvents(events => events.OnComplete("onComplete"))
.DataBinding(dataBinding => dataBinding.Ajax().Select("_CustomCommand", "Grid"))
.Pageable()
.Sortable()
.Filterable()

)

和我的订单模型

public class Order{
  public int OrderID {get;set;}

  public string ShipAddress {get ; set; }

  public bool CanEdit {get; set;}
}

我希望我的命令列根据 CanEdit 值使用不同的操作。例如,如果 CanEdit 为 false,则使用 action

columns.Command(commands => commands
                .Custom("viewDetails")
                .Text("View Details")
                .DataRouteValues(route => route.Add(o => o.OrderID).RouteKey("orderID"))
                .Ajax(true)
                .Action("ViewDetails", "Grid"))
            .HtmlAttributes(new { style = "text-align: center" })

如果 CanEdit 为真,则使用操作

columns.Command(commands => commands
                .Custom("editDetails")
                .Text("Edit Details")
                .DataRouteValues(route => route.Add(o => o.OrderID).RouteKey("orderID"))
                .Ajax(true)
                .Action("EditDetails", "Grid"))
            .HtmlAttributes(new { style = "text-align: center" })

你能给我一些想法如何实现它吗?

谢谢

4

1 回答 1

0

最后我通过使用网格中的模板列解决了这个问题。我发现无法按需更改命令列的文本。谢谢

于 2012-07-08T21:46:19.863 回答