我正在使用webgrid来显示一些动态数据。我最近重构了我的代码,从一个层级模型中移开,包含要在View中显示的各种不同类型的数据以使用ViewBag。
以前网格会对列进行排序,只需单击标题,但是由于我更改为ViewBag,因此我的表格不会排序。我的新代码如下:
@if (ViewBag.data != null)
{
var grid = new WebGrid(
source: ViewBag.data,
defaultSort: "StudyName",
rowsPerPage: 10,
canSort: true,
canPage: true,
ajaxUpdateContainerId: "tableDiv"
);
@grid.GetHtml(
tableStyle: "resultTable",
columns: grid.Columns(
ViewBag.columns)
)
}
有人有什么想法吗?
感谢。
答案 0 :(得分:2)
确保您已在CanSort
上将true
媒体资源设为ViewBag.columns
:
ViewBag.columns = new[]
{
new WebGridColumn
{
ColumnName = "Id"
},
new WebGridColumn
{
CanSort = true,
ColumnName = "StudyName"
},
};
只有具有此属性集的列才会在网格标题中显示为超链接,允许用户对其进行排序。