【问题标题】:GridView Sort from Search results instead of original dataGridView 从搜索结果而不是原始数据排序
【发布时间】:2012-01-16 14:58:41
【问题描述】:

我正在使用 VS2005 C# 和 SQL Server 2005。

我有一个 GridView,它列出了来自多个 sql 查询的数据。

在验证和检查结束时,我的表将包含从 sql 检索到的数据列表。

我还可以根据UserIDUsername、...等过滤结果(搜索功能)。

我在 GridView 中启用了排序功能,以使用户能够对相同的 UserID、“用户名”或 ... 等进行分组。

尝试过滤结果后通过Username,它将仅列出我搜索的具有Username 的记录。当我按下 sorting (列标题)时,我希望 GridView 只对当前在 GridView 上的结果进行排序。

但是,当我按 sort 时,它会退回到原来的长数据列表,而不是 sort 我的搜索结果。

我想知道是否可以仅在当前 GridView 上启用排序,而不是在整个数据列表上启用?

谢谢。


编辑:

简单地说,在 GridView 中,我是否能够对我的搜索结果进行排序,而不是对数据库中的整个数据列表进行排序?

【问题讨论】:

  • 所以你有点将你的 Gridview 绑定到一个列表? grid.Itemsource = someList; ?
  • @Gero 是的,就在页面本身的列表中。
  • 为什么不创建第二个列表来存储搜索结果?

标签: c# asp.net sql visual-studio gridview


【解决方案1】:

您需要在客户端进行排序。使用Tablesorter jquery 插件。 See this great example using asp.net gridview.

【讨论】:

  • 显然不是。但是使用 jquery 会解决“我知道是否可以仅在当前 GridView 上启用排序”
  • ic。我正在使用.Net 2.0。我在网站上看到它说我需要 ASP.NET 4.0,对吗?
  • 并非如此。您可以使用 .Net 2.0(请参阅我改编的此示例 ge.tt/9YggaxA?c
【解决方案2】:

在 Silverlight 中,我遇到了类似的问题。我制作了第二个列表,我将在其中临时存储搜索元素并将该列表绑定到网格。所以我可以在第二个列表上执行诸如排序之类的操作,并且不会干扰包含所有未排序数据的主列表。这就是我快速解决问题的方法。

【讨论】:

  • 嗨格罗。我试图实现搜索结果以显示在另一个网页上。但是,当我按列的标题对特定的 searchResult 表进行排序时,排序后表会返回整页。我将鼠标悬停在标题选项卡上,我看到的仍然是 javascript:_doPostBack(MainContent$GridView1,SortIssue),即使我已重命名我的 GridView。你有解决这个问题的办法吗?
【解决方案3】:

为什么不使用 DataTable.DefaultView?您可以过滤、排序等。

【讨论】:

    猜你喜欢
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多