我無法讓我的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