相关疑难解决方法(0)

如果使用自定义DataSource,如何对ASP.NET GridView中的列进行排序?

当我使用自定义SqlDataSource时,我无法使用GridView使用户能够对数据列进行排序.

我有一个GridView,其中HTML中引用它的代码是最小的:

<asp:GridView id="grid" runat="server" AutoGenerateColumns="False" AllowSorting="True">
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)

在代码隐藏中,我附加了一个动态创建的SqlDataSource(它包含的列并不总是相同,因此用于创建它的SQL是在运行时构造的).例如:

我设置了专栏......

BoundField column = new BoundField();
column.DataField = columnName;
column.HeaderText = "Heading";
column.SortExpression = columnName;

grid.Columns.Add(column);
Run Code Online (Sandbox Code Playgroud)

数据源......

SqlDataSource dataSource = new SqlDataSource(
    "System.Data.SqlClient",
    connectionString, 
    generatedSelectCommand);
Run Code Online (Sandbox Code Playgroud)

那么gridview ......

grid.DataSource = dataSource;
grid.DataKeyNames = mylistOfKeys;
grid.DataBind();
Run Code Online (Sandbox Code Playgroud)

当我希望它对列数据进行排序时,当用户点击列标题时,没有任何反应.任何想法,我缺少什么?

如果有一个更好的方式这样做也会有所帮助,因为这看起来很混乱!

c# asp.net gridview sqldatasource

4
推荐指数
2
解决办法
3万
查看次数

标签 统计

asp.net ×1

c# ×1

gridview ×1

sqldatasource ×1