Для столбцов, в которых вы использовали пользовательский формат, вам придется выполнить сортировку самостоятельно.Таким образом, вам нужно будет присвоить вашему пользовательскому столбцу имя, которое будет использоваться для его идентификации на сервере:
grid.Column(
columnName: "title",
header: "Item title",
format: @<text> @GetItemTitle(@item.InventoryReference) </text>
),
, и при щелчке по заголовку этого столбца запрос будет отправлен в действие контроллера, которое будетвыглядит следующим образом:
/controller/action/?sort=title&sortdir=ASC
Таким образом, внутри действия вашего контроллера вы будете использовать эту информацию для сортировки набора данных.
public ActionResult Foo(string sort, string sortdir)
{
// check if sort = title and then sort your dataset accordingly
// before returning the model to the view
...
}
Сортировка причин работает для столбцов, для которых вы неПользовательский формат определен потому, что помощник WebGrid способен автоматически сортировать набор данных перед его отображением, но это, очевидно, плохо, потому что такие вещи, как сортировка и разбиение на страницы, обязательно должны выполняться на ваших внутренних уровнях (например, в базе данных, если вы используете один) для эффективной сортировки и подкачки.Так что даже для столбцов без пользовательского формата вы должны выполнять сортировку / разбиение по страницам на уровне базы данных, а не полагаться на помощника WebGrid для сортировки / разбивки на страницы набора данных перед отображением.