【问题标题】:Sorting dataview from datatable with hidden columns in ASP.NET在 ASP.NET 中使用隐藏列对数据表中的数据视图进行排序
【发布时间】:2017-06-08 07:13:06
【问题描述】:

我在 ASP.NET Web 窗体应用程序中有一个 gridview,我需要添加一种方法来根据 2 列对行进行排序。我找到了一种使用 DataView 的方法。 所以从我原来的 Gridview 我创建一个 DataTable 然后我做:

DataView dv = new DataView(dt);
dv.Sort = "Column_1, Column_2";
gridView.DataSource = dv;
gridView.DataBind();

现在我可以对 DataView 进行排序,然后我可以将 DataView 作为 DataSource 添加到 Gridview。这很好用,除了我原来的 GridView 有一些设置为可见 = false 的列。 进行此排序后,隐藏列中的数据将被删除。 有没有人遇到过这个?当我从 DataTable 创建 DataView 或进行排序时会发生这种情况吗?我能做些什么来保留隐藏列中的值?

谢谢!

【问题讨论】:

  • 我设法解决了这个问题,首先使 GridView 列可见,然后执行排序所需的所有其他内容,最后我将 GridView 列恢复为不可见。这行得通,但我更好奇为什么会发生这种情况。我在网上找不到任何相关信息。也许有更多经验的人可以提供一些启示。谢谢!

标签: asp.net gridview


【解决方案1】:

在排序之前你必须设置列visible=false,排序之后设置visible=true在排序代码下面会更好:

DataView dv = new DataView(dt);
dv.Sort = "Column_1, Column_2";
gridView.DataSource = dv;
gridView.DataBind();

这有效,因为您没有在Page_Load 中检查IsPostBack

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多