如何在GridView中添加最后一列

时间:2012-07-04 06:04:19

标签: c# asp.net-mvc gridview razor devexpress

我需要添加最后一列&#34;操作&#34;,并在单元格href <a href="/?page=@Id">details</a>中设置 在devexpress中如何做到这一点?

@Html.DevExpress().GridView(
    settings =>
    {
        settings.Name = "gvGrouping";

        settings.Columns.Add("Id");//not visible
        settings.Columns.Add("Service", "Сервис");

    settings.Columns.Add("Action", "Action");//I have error

    }
    )

2 个答案:

答案 0 :(得分:0)

我通常如何做到(不知道它是否是最好的方式,但它确实起作用):

 settings.Columns.Add(column =>
                                {
                                 column.FieldName = "Id";
                                 column.Caption = " ";
                                 column.Settings.AllowAutoFilter = DefaultBoolean.False;
                                 column.Settings.AllowDragDrop = DefaultBoolean.False;
                                 column.Settings.AllowSort = DefaultBoolean.False;
                                });
 settings.CustomColumnDisplayText = (sender, e) =>
                                          {
                                                if (e.Column.FieldName == "Id")
                                                {
                                                     e.DisplayText = // put your actionlink here                                                                                       
                                                }
                                          };

这使你能够在那里放置你喜欢的东西(图像,URL等)。您可以通过调用&#39; e.Value&#39;来访问ID的值。或args.GetFieldValue(&#34;&#34;)为另一个属性。或者你可以访问模型(Model.blabId)..

希望这有帮助

更新:

我不知道你是如何构建你的网格的,但这应该是这样的(我认为你调用网格的方式有问题,那就是&#39;为什么你得到错误):

 Html.DevExpress().GridView(settings =>
    {
       //all your settings stuff in here
    }).Bind(Model.YourList).Render();

答案 1 :(得分:-1)

您也可以使用SetDataItemTemplateContent

@Html.DevExpress().GridView(
    settings =>
    {
       var actionCol = settings.Columns.Add("Action");
       actionCol.SetDataItemTemplateContent(() =>
       { 
          Html.ActionLink("Action", "SomeAction", "SomeController", new { myParam =    Model.Param });
    } );