当我使用自定义SqlDataSource时,我的GridView无法启用用户对数据列进行排序。
我有一个GridView,在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);
the data source...
SqlDataSource dataSource = new SqlDataSource(
"System.Data.SqlClient",
connectionString,
generatedSelectCommand);
那么这个GridView...
grid.DataSource = dataSource;
grid.DataKeyNames = mylistOfKeys;
grid.DataBind();
目前,当用户点击列标题时,我希望它可以排序列数据,但是什么也没有发生。有人知道我漏掉了什么吗?
如果有更好的方法,那就更好了,因为我觉得这看起来很混乱!