当我使用自定义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)
当我希望它对列数据进行排序时,当用户点击列标题时,没有任何反应.任何想法,我缺少什么?
如果有一个更好的方式这样做也会有所帮助,因为这看起来很混乱!