我无法让我的GridView使用户在使用自定义SqlDataSource时对数据列进行排序。如何使用自定义数据源对ASP.NET 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);
然后在GridView ...
grid.DataSource = dataSource;
grid.DataKeyNames = mylistOfKeys;
grid.DataBind();
在当用户点击列标题时,我预计它会对列数据进行排序时,什么也没有发生。任何人有任何想法我失踪?
如果有更好的方法来做到这一点,这也会有帮助,因为这看起来很乱!
此刻,我根本不处理排序事件,而是将它留给它的默认行为。但是,我已经检查过在排序事件中SortExpression和SortDirection是合理的,而不是空白。 数据源在回发后重新绑定到网格, – 2008-09-26 09:57:11
您应该像Keith提到的那样处理事件。使用标准的SqlDataSource控件它会自动完成,但在这种情况下,您还应该自己处理。 – Biri 2008-09-26 09:59:20