【问题标题】:Default Sort is not working while using WebGrid Helper With Column as hidden使用带有隐藏列的 WebGrid Helper 时默认排序不起作用
【发布时间】:2018-10-19 05:01:26
【问题描述】:

我正在使用@grid.GetHtml gridview 在我的 ASP.NET MVC4 应用程序中显示网格。

使用隐藏列(主键)的 WebGrid Helper 时,默认排序不起作用。

使用 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>

【问题讨论】:

  • “默认排序不起作用”是什么意思?您的预期和实际结果是什么?还有什么是SP?共享点?
  • 感谢您的回复。我有一个网络网格及其“AAAA”列的排序 ASC,但我不想显示“AAAA”列,因为这是我的 promar 列,不想在我的页面中显示,但它需要我的功能。如果我删除隐藏其按预期工作意味着排序 ASC 正在申请列“AAAA”,但如果我隐藏列“AAAA”,则排序 ASC 不适用。希望你明白我的情况。感谢您的帮助。谢谢。
  • 您可以在将控制器中的数据传递给视图之前对其进行排序

标签: jquery asp.net-mvc-4 razor webgrid


【解决方案1】:

您可以在将控制器中的项目传递给视图之前对其进行排序。这样他们应该保留你想要的顺序:

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);
}

从按钮或视图中需要的任何地方调用该控制器

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    相关资源
    最近更新 更多