【问题标题】:MVC C# WebGrid sort failingMVC C# WebGrid 排序失败
【发布时间】:2015-01-14 19:28:13
【问题描述】:

我有一个 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 排序如何帮助我解决问题的信息将不胜感激。

谢谢!

【问题讨论】:

  • 也许不是排序问题,而是您选择获取更新的方式。您已经指定了 ajaxUpdateContainerId,但是将被替换的容器元素在哪里?
  • 感谢您的关注大声。我确实有一个带有 ajaxUpdateContainerId 的 div 包围的网格。我更新了我的问题以反映这一点。

标签: asp.net-mvc webgrid


【解决方案1】:

也许为时已晚,但我今天已经看到了... 您必须在加载包含网格的控制器函数中接收下一个参数(我已经用 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。

【讨论】:

    猜你喜欢
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 2021-08-24
    相关资源
    最近更新 更多