我需要添加最后一列&#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
}
)
答案 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 });
} );