0

我有一个 WebGrid 排序,在单击标题时没有做任何事情。

WebGrid 包含在部分视图中,如下所示 -

@model MyModel

var grid = new WebGrid(Model.MyList, defaultSort: "MyField", canSort: true, ajaxUpdateContainerId: "MyContainer", canPage: false);  
<div id="MyContainer">
          @grid.GetHtml(
            columns: grid.Columns(
                grid.Column("col1", "Col1", format: @<text>@item.field1</text>),
                grid.Column("col2", "Col2", format: @<text>@item.field2</text>),
                grid.Column("col3", "Col3", format: @<text>@item.field3</text>)

           )
          )
 </div>

在控制器中 -

    [HttpGet]
    public ActionResult MyController()
    {
        MyModel m = new MyModel()

        m = (MyModel)Session["MyModel"];

        return PartialView("MyView", dr);
    }

我想知道这是否与我从 Session 变量中提取模型这一事实有关?如果没有,我可能做错了什么?

如果没有任何问题,任何关于 WebGrid 排序如何帮助我解决问题的信息将不胜感激。

谢谢!

4

1 回答 1

0

也许为时已晚,但我今天已经看到了......您必须在加载包含网格的控制器函数中接收下一个参数(我已经用 VB 完成了):

Optional ByVal page As Integer? = Nothing, _
Optional ByVal sort As String = Nothing, _
Optional ByVal sortDir As String = Nothing, _

然后,您必须将此参数传递给在您的数据库和存储过程中使用 sort 和 sortDir 参数进行搜索的函数。page param page是能够分页的。如果它是 ASC 或 DESC,排序参数将保持字段排序和 sortDir。

于 2015-01-14T11:28:13.913 回答