排序和过滤不适用于@ 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,评论和其他评论工作,其他列不起作用,我从另一个表获得。请告诉我哪里错了。
这是因为您使用渲染值进行渲染
.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" }));
您的过滤器将与订购和过滤一起运行。