Grid.MVC排序无法按预期工作。例如,我有一个带有数值和日期值的列。提供的屏幕截图仅显示Total Premium排序不正常,但同样的事情也发生在生效日期列上。我需要做些什么来告诉它它的数字或日期,以便正确排序吗?
@Html.Grid(Model.SearchResult).Named("searchGrid").Columns(col =>
{
col.Add(c => c.PolicyNumber).Titled("Number").Sortable(true);
col.Add(c => c.FormattedInsuredName).Titled("Insured Name").Sortable(true);
col.Add(c => c.FormattedAddress).RenderValueAs(m => Html.Raw(m.FormattedAddress)).Encoded(false).Sanitized(false).Titled("Property Address").Sortable(true);
col.Add(c => c.Status).Titled("Status").Sortable(true);
col.Add(c => c.FormattedEffectiveDate).Titled("Effective Date").Sortable(true);
col.Add(c => c.FormattedTotalPremium).Titled("Total Premium").Sortable(true);
col.Add().Encoded(false).SetWidth(150).Sanitized(false).Titled("Action").RenderValueAs(dd => Html.DropDownList("ddlAction", dd.DropDownActions, new { @class = "form-control ddlAction", @data_viewquote = dd.QuoteURL }));
}).WithPaging(25).Sortable(true)
从下面的屏幕截图中可以看到Total Premium列的排序不正确。 ASC和DESC都有屏幕截图。
答案 0 :(得分:0)
感谢Santi的评论。
模型的类型被格式化为字符串,以便在到达网格之前显示某种格式。删除了字符串格式并将格式设置在网格上以允许对正确类型进行排序并仍显示格式。下面的新网格带有额外的.Format()部分。
@Html.Grid(Model.SearchResult).Named("searchGrid").Columns(col =>
{
col.Add(c => c.PolicyNumber).Titled("Number").Sortable(true);
col.Add(c => c.FormattedInsuredName).Titled("Insured Name").Sortable(true);
col.Add(c => c.FormattedAddress).RenderValueAs(m => Html.Raw(m.FormattedAddress)).Encoded(false).Sanitized(false).Titled("Property Address").Sortable(true);
col.Add(c => c.Status).Titled("Status").Sortable(true);
col.Add(c => c.FormattedEffectiveDate).Titled("Effective Date").Sortable(true).Format("{0:MM/dd/yyyy}");
col.Add(c => c.FormattedTotalPremium).Titled("Total Premium").Sortable(true).Format("{0:C2}");
col.Add().Encoded(false).SetWidth(150).Sanitized(false).Titled("Action").RenderValueAs(dd => Html.DropDownList("ddlAction", dd.DropDownActions, new { @class = "form-control ddlAction", @data_viewquote = dd.QuoteURL }));
}).WithPaging(25).Sortable(true)