gpt4 book ai didi

sorting - sortdir 不适用于 MVC 3 WebGird 中的枚举数据类型

转载 作者:行者123 更新时间:2023-12-02 21:25:41 27 4
gpt4 key购买 nike

我有以下结构:

型号

public class EventEntry : LogEntry
{
public EventType Type { get; set; }

public string Source { get; set; }
}

public enum EventType : int
{
Information = 1,
Warning = 2,
Error = 3
}

查看

<div id="grid">
@{
var grid = new WebGrid(canPage: true, rowsPerPage: Ctrl.PageSize, canSort: true, ajaxUpdateContainerId: "grid");
grid.Bind(Model.Events, rowCount: Model.TotalRecords, autoSortAndPage: false);

grid.Pager(WebGridPagerModes.All);
@grid.GetHtml(htmlAttributes: new { id="grid" },
columns: grid.Columns(
grid.Column("Type"),
grid.Column("Source"));
}
</div>

Controller

public ActionResult Index(int? page, string sort, string sortdir) {...}

当我单击字符串类型的“源”列时,sordir 将从“ASC”更改为“DESC”,但是当我在“类型”列上尝试相同的操作时,sordir 将始终返回“ASC”。

最佳答案

当前接受的答案并不是您问题的答案。

当您在绑定(bind)操作中未提及列名时,枚举似乎不会排序。我通过在将模型绑定(bind)到网络网格时提供所有必需的列名称来修复此问题。在此示例中,UserType 属性是一个枚举。

        var webgrid = new WebGrid(rowsPerPage: 25);

webgrid.Bind(Model, new[] { "FirstName", "MiddleName", "SurName", "UserType" });

var columns = webgrid.Columns(
webgrid.Column("FirstName", "Voornaam"),
webgrid.Column("MiddleName", "Tussenvoegsels"),
webgrid.Column("SurName", "Achternaam"),
webgrid.Column("UserType", "Type gebruiker"),
);

所以我认为如果您实现以下代码,排序将在不更改 Controller 的情况下进行:

<div id="grid">
@{
var grid = new WebGrid(canPage: true, rowsPerPage: Ctrl.PageSize, canSort: true, ajaxUpdateContainerId: "grid");
grid.Bind(Model.Events, new[] { "Type", "Source" }, rowCount: Model.TotalRecords, autoSortAndPage: false);

grid.Pager(WebGridPagerModes.All);
@grid.GetHtml(htmlAttributes: new { id="grid" },
columns: grid.Columns(
grid.Column("Type"),
grid.Column("Source"));
}
</div>

关于sorting - sortdir 不适用于 MVC 3 WebGird 中的枚举数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5687022/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com