我已经尝试了很多次来找到一种方法来对我的 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/