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

C# 如何对gridview进行排序以按特定列显示行,c#,asp.net,sql,C#,Asp.net,Sql,我已经尝试了很多次,想找到一种方法来对我的gridview进行排序,但是我找不到一种方法 表列: Name | Age | Old device name ============================ John | 22 | KRT 20 Jon | 21 | KSR 12 Jco | 22 | 我想知道如何制作下拉列表,在gridview中选择按旧设备名称对所有行进行排序,因此我应该在gridview中只看到包含旧设备名称的行 我正在ASP.NET中使用SqlDataS

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

您可以用
SortDirection.Descending
替换
SortDirection.Descending


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

您可以在SqlDataSource的sortExpression属性中设置列名,并调用DataBind()方法,它将为您的gridview排序。我获取porperty或indexer System.Web.Ui.WebControl.gridview.SortExpression无法分配给--它已被读取only@InziIrina啊,我已经有一段时间没这么做了。我已经更新了代码(这一次,我在我的机器上测试了它-所以你应该很好!)。我需要从列中选择一个数据源吗?还是只添加带有列文本的项?我说的是下拉列表,我不知道如何配置it@InziIrina正确,您将添加带有列名称的
元素。我在示例中添加了这一点。
<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>
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    gridView1.Sort(DropDownList1.SelectedValue, SortDirection.Ascending);
}