我有一个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排序如何帮助我解决问题的信息都将非常感激。
谢谢!
答案 0 :(得分:0)
也许为时已晚,但我今天已经看到了...... 您必须在控制器函数中接收下一个加载包含网格的参数(我用VB完成):
Optional ByVal page As Integer? = Nothing, _
Optional ByVal sort As String = Nothing, _
Optional ByVal sortDir As String = Nothing, _
然后,您必须将此参数传递给在数据库和存储过程中进行搜索的函数,并使用sort和sortDir参数。页面参数页面可以进行分页。 sort param将保持字段顺序,sortDir如果是ASC或DESC。