2010-06-30 58 views
2

我有一個Web應用程序(與C#)。我有一個GridView,並希望能夠對其內容進行排序。我已經添加了標籤點網gridview排序問題

...

AllowSorting="True" 
onsorting="MyGridView_Sorting"> 

asp:BoundField DataField="NAME" HeaderText="Name" SortExpression="NAME" 

在GridView裏面。我已經實現了MyGridView_Sorting方法。事情是:它不起作用。什麼也沒做。標題文本「名稱」看起來像一個活動鏈接,但點擊不會產生任何效果。在內部設置一個斷點

MyGridView_Sorting 

表明它實際上永遠不會進入函數內部。哪裏不對?我錯過了什麼?

謝謝!

< asp:GridView ID="MyGridView" 
runat="server"        
CssClass="pvgrid" 
Width="90%" 
AutoGenerateColumns="false" 
OnRowCommand="MyGridView_RowCommand" 
AllowPaging="True" 
PageSize="10" 
AllowSorting="True" 
onsorting="MyGridView_Sorting" 
onpageindexchanging="MyGridView_PageIndexChanging" > 

<Columns> 
< asp:BoundField DataField="NAME" HeaderText="Name" SortExpression="NAME" /> 
</Columns> 
</asp:GridView> 


protected void MyGridView_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    MyGridView.PageIndex = e.NewPageIndex; 
    MyGridView.DataBind(); 
} 

protected void MyGridView_Sorting(object sender, GridViewSortEventArgs e) 
{ 
    DataTable dataTable = MyGridView.DataSource as DataTable; 

    if (dataTable != null) 
    { 
     DataView dataView = new DataView(dataTable); 
     dataView.Sort = e.SortExpression + " "+ ConvertSortDirectionToSql(e.SortDirection); 
     MyGridView.DataSource = dataView; 
     MyGridView.DataBind(); 
    } 
} 

回答

3

的GridView代表排序到下層的數據源。 GridView不自己執行排序,它只是代表。所以你需要查看你的DataSource進行排序。什麼是數據源?它顯示什麼樣的數據?這些自定義對象是來自ObjectDataSource還是您使用的是SqlDataSourceLinqDataSource

+0

我使用自定義函數填充數據源,該函數詢問數據庫並將數據集綁定到gridview。我不明白的是爲什麼應用程序甚至沒有進入我的排序功能。甚至不是第一行。該函數根本不被調用。我相信我不能正確理解這項業務的邏輯...... – Giuseppe 2010-06-30 08:52:54

+0

向我們展示一些代碼。編輯你的問題並添加一些代碼。 – 2010-06-30 08:56:30

+0

編輯不喜歡「<", ">」 如何將代碼放入我的文章中? – Giuseppe 2010-06-30 09:27:39