Сортировка по умолчанию не работает при использовании помощника WebGrid со скрытой колонкой - PullRequest
0 голосов
/ 09 мая 2018

Я использую @grid.GetHtml gridview, чтобы показать сетку в моем приложении ASP.NET MVC4.

Сортировка по умолчанию не работает при использовании помощника WebGrid со столбцом (первичным ключом) как скрытым.

Использование SP для извлечения данных веб-сетки, а также сортировка по умолчанию приведены в SP.

Мой код:

@grid.GetHtml(
    htmlAttributes: new
      {
          id = "XXXX"
      },
    tableStyle: "table table-bordered table-condensed table-hover table-striped",
    headerStyle: "info",
    footerStyle: "webgrid-footer",
    alternatingRowStyle: "webgrid-alternating-row",
    selectedRowStyle: "webgrid-selected-row",
    rowStyle: "gridrow",
    columns: grid.Columns(
        grid.Column("AAAA", "AAAA",style:"hidecol") //Primary Column Name is “AAAA” 
    )
)

Код JQuery для скрытия заголовка столбца первичного столбца.

<script type="text/javascript">
$(document).ready(function() {
  $("# XXXX th:nth-child(1)").hide();
});
</script>

1 Ответ

0 голосов
/ 11 мая 2018

Вы можете просто отсортировать элементы в вашем контроллере, прежде чем передавать их на просмотр. Таким образом, они должны сохранить порядок, который вы хотите:

public IActionResult Index()
{
    var items = new List<obj>(){new obj(5), new obj(1), new obj(355)};
    var sortedItems = items.OrderBy(o => o.Id);
    return View(sortedItems);
}

И если вам нужен способ сортировки их в самом представлении, вы можете сделать что-то вроде

public IActionResult Index(string sortOrder)
{
    var items = new List<obj>(){new obj(5), new obj(1), new obj(355)};

    if (sortOrder == "ASC")
    {
        items = items.OrderBy(o => o.Id).ToList();
    }
    return View(items);
}

Где вы вызываете этот контроллер с кнопки или с того, что вам нужно на ваш взгляд

...