网格排序和过滤在mvc中的某些列上不起作用

问题描述 投票:2回答:1

排序和过滤不适用于@ html.grid中的某些列。在这个网格中,我从他们的Id中获取另一个表中的UserName,Email和site列。这是代码

     @Html.Grid(Model).Named("UserGrid").Columns(x =>
{
    x.Add(y => y.UserID);
    x.Add().Titled("User Name").Sortable(true).Encoded(false).Sanitized(false).SetWidth(100).RenderValueAs(y=>String.Join(",", y.UserList.Select(e=>e.UserName).ToArray()));
    x.Add().Titled("Email").Sortable(true).Encoded(false).Sanitized(false).SetWidth(100).RenderValueAs(y=>String.Join(",", y.UserList.Select(e=>e.Email).ToArray()));
    x.Add().Titled("Site").Sortable(true).Encoded(false).Sanitized(false).SetWidth(100).RenderValueAs(y=>String.Join(",", y.SiteList.Select(e=>e.Location).ToArray()));
    x.Add(y => y.Comments);
    x.Add(y => y.AdditionalComments);
    x.Add().Encoded(false)
        .Sanitized(false)
        .SetWidth(20)
        .RenderValueAs(y => Html.ActionLink(" Edit", "Edit", new { id = y.Id }, new { @class = "btn btn-primary fa fa-chevron-circle-down" }));
}).WithPaging(20).Sortable(true)

这是我得到的输出: - enter image description here

在这张图片UserId,评论和其他评论工作,其他列不起作用,我从另一个表获得。请告诉我哪里错了。

asp.net-mvc gridview
1个回答
0
投票

这是因为您使用渲染值进行渲染

  .RenderValueAs(y => Html.ActionLink(" Edit", "Edit", new { id = y.Id }, new { @class = "btn btn-primary fa fa-chevron-circle-down" }));

你需要像这样运行:

x.Add(m=>m.Id).Encoded(false)
        .Sanitized(false)
        .SetWidth(20)
        .RenderValueAs(y => Html.ActionLink(" Edit", "Edit", new { id = y.Id }, new { @class = "btn btn-primary fa fa-chevron-circle-down" }));

您的过滤器将与订购和过滤一起运行。

© www.soinside.com 2019 - 2024. All rights reserved.