我已经尝试了很多次来找到一种方法来对gridview进行排序,但我找不到办法来做到这一点。
表格列:
Name | Age | Old device name
============================
John | 22 | KRT 20
Jon | 21 | KSR 12
Jco | 22 |
我想知道如何制作一个删除列表,在gridview中选择按旧设备名称排序所有行,所以我应该在gridview中只看到包含旧设备名称的行。
我在ASP.NET中使用SqlDataSource和GridView。
答案 0 :(得分:2)
编辑:我已根据您的评论更新了代码。
执行此操作的一种方法是将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>
然后,在后面的代码中,您可以设置根据您的下拉选择值调用sort函数:GridView
的“SortExpression”并数据绑定
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
gridView1.Sort(DropDownList1.SelectedValue, SortDirection.Ascending);
}
您可以将SortDirection.Ascending
替换为SortDirection.Descending
。
注意:此答案假定下拉列表中的值是数据源中列/字段的名称。