当我使用自定义 SqlDataSource 时,我无法让我的 GridView 使用户能够对一列数据进行排序。
我有一个 GridView,其中 ASP 中的代码在 HTML 中对其进行引用是最少的:
<asp:GridView id="grid" runat="server" AutoGenerateColumns="False" AllowSorting="True">
</asp:GridView>
在代码隐藏中,我附加了一个动态创建的 SqlDataSource(它包含的列并不总是相同的,因此用于创建它的 SQL 是在运行时构造的)。例如:
我设置了列...
BoundField column = new BoundField();
column.DataField = columnName;
column.HeaderText = "Heading";
column.SortExpression = columnName;
grid.Columns.Add(column);
数据源...
SqlDataSource dataSource = new SqlDataSource(
"System.Data.SqlClient",
connectionString,
generatedSelectCommand);
然后是网格视图...
grid.DataSource = dataSource;
grid.DataKeyNames = mylistOfKeys;
grid.DataBind();
目前,当我希望它对列数据进行排序时,当用户单击列标题时,什么也没有发生。有人知道我缺少什么吗?
如果有更好的方法这样做也会有帮助,因为这对我来说看起来很乱!