Helo,我正在开发一个 ASP.NET MVC 3 应用程序。
我有一个观点
var grid = new WebGrid(rowsPerPage: 10, ajaxUpdateContainerId: "GridDiv",canPage: true,canSort: true);
grid.Bind(source: Model);
grid.Pager(WebGridPagerModes.All);
@grid.GetHtml(htmlAttributes: new { id="grid" },
columns: grid.Columns(
grid.Column("Name"),
grid.Column("Age"),
grid.Column("Sex")
)
在控制器中,我有一个自定义的排序算法来对数据进行排序。我有自定义升序排序和自定义降序排序。
当用户单击列标题时,我希望按照我的自定义排序算法而不是内置排序算法对行进行排序。
为此,我尝试了以下方法(我采用“sortdir”并相应地处理它)
控制器
public ActionResult Persons(string sortdir)
{
PersonsListModel = GetAllPersonsList();
if(sortdir=="ASC")
return View(MyAscendingCustomSortAlgorithm(PersonsListModel ));
else
return View(MyDescendingCustomSortAlgorithm(PersonsListModel ));
}
MyAscendingCustomSortAlgorithm
并且MyDescendingCustomSortAlgorithm
是返回按我的自定义算法排序的列表的函数。
页面加载时,列表排序正确,但是当我单击标题时,排序混乱。我进行了调试,一切正常。
我的问题是我怎样才能使它工作,并且仍然保持正确的分页
我也尝试过设置canSort: false
,但后来我不能再点击标题了。
非常感谢您的帮助