c# - 如何对gridview进行排序以按特定列显示行

标签 c# asp.net sql

我已经尝试了很多次来找到一种方法来对我的 gridview 进行排序,但我找不到一种方法来做到这一点。

表格列:

Name | Age | Old device name
============================
John | 22  | KRT 20
Jon  | 21  | KSR 12
Jco  | 22  |

我想知道如何制作一个下拉列表,以在 GridView 中选择按旧设备名称对所有行进行排序,因此我应该在 GridView 中仅看到包含旧设备名称的行。

我在 ASP.NET 中使用 SqlDataSource 和 GridView。

最佳答案

编辑:我已根据您的评论更新了代码。

实现此目的的一种方法是将 DropDownList 设置为 AutoPostBack="true",并处理 SelectedIndexChanged 事件。在此示例中,DropDownList 中的项目应与 GridView 的列名称匹配。我使用过“ColumnA”、“ColumnB”和“ColumnC”

<asp:DropDownList ID="DropDownList1" AutoPostBack="true" runat="server"
    OnSelectedIndexChanged="myDDL_SelectedIndexChanged">
    <asp:ListItem>ColumnA</asp:ListItem>
    <asp:ListItem>ColumnB</asp:ListItem>
    <asp:ListItem>ColumnC</asp:ListItem>
</asp:DropDownList>

然后,在后面的代码中,您可以设置GridView的“SortExpression”并对其进行数据绑定(bind)只需根据下拉列表的所选值调用排序函数:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    gridView1.Sort(DropDownList1.SelectedValue, SortDirection.Ascending);
}

您可以将 SortDirection.Ascending 替换为 SortDirection.Descending

注意:此答案假设下拉列表中的值是数据源中的列/字段的名称。

关于c# - 如何对gridview进行排序以按特定列显示行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9684287/

相关文章:

c# - 同时执行所有任务并等待它们完成?

ASP.net 不为某些用户代理生成 javascript

mysql - 使用具有自定义属性和值的对象对数据库建模的最佳方法

php - 你能选择并加入一个mysql查询吗?

C# + 7z.exe 似乎不起作用

c# - 如何在 C# 中隐藏 ReplyKeyboardMarkup?

c# - 构建平台目标 AnyCPU EXE 在 64 位机器中仍然显示 32 位 header

c# - 无法调用方法,因为参数通过更新 mvc 时的引用异常传递

c# - 下拉显示不正确的值

java - 使用本地 Sqlite 数据库开发简单的测验应用程序,但分数没有增加