如何对网格视图进行排序,以便按特定列显示行

本文关键字:显示 排序 网格 视图 | 更新日期: 2023-09-27 18:27:33

我已经试了很多次想办法对我的网格视图进行排序,但我找不到方法。

表列:

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

我想知道如何制作一个下拉列表,在网格视图中选择按旧设备名称对所有行进行排序,这样我就应该在网格视图上只看到包含旧设备名称的行。

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

如何对网格视图进行排序,以便按特定列显示行

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

一种方法是将DropDownList设置为AutoPostBack="true",并处理SelectedIndexChanged事件。在本例中,DropDownList中的项应与GridView的列名相匹配。我使用过"ColumnA"、"ColumnB"answers"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"并对其进行数据绑定只需根据下拉菜单的选定值调用排序函数:

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

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

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