2011-08-29 42 views
1

在datagrid Item Databound事件中,我想知道網格是否已經第一次排序或加載。我知道有一個事件OnSortCommand,我可以在這裏設置一些變量來檢查是否在網格上發生了排序。但我想知道是否有更好的方法來檢查網格是否已被排序。謝謝。您的幫助。檢查數據網格是否已排序

PS:我看了一下這個post,它建議檢查Request.Form["__EVENTTARGET"]Request.Form["__EVENTARGUMENT"]。比方說,我在表格中有'x'列的網格和其他服務器控件,我覺得這不是一個正確的方法,有'x'如果條件並檢查請求是否來自其中一個控件。

+0

這是一個愚蠢的問題,或者我應該等待更多的時間? – user583126

回答

1

如果DataGridView已排序,則其SortedColumn屬性將被設置。

0

下面是一個示例,用於驗證DataGridView控件的列的排序順序或檢查屬性sortorder的狀態。

private void button1_Click(object sender, EventArgs e) 
    { 
     this.dataGridView1.Sorted +=new EventHandler(dataGridView1_Sorted); 
    } 

    void dataGridView1_Sorted(object sender, EventArgs e) 
    { 
     if (this.dataGridView1.SortOrder.Equals(SortOrder.Ascending)) 
     { 
      // your code here 
     } 

     if (this.dataGridView1.SortOrder.Equals(SortOrder.Descending)) 
     { 
      // your code here 
     } 

     if (this.dataGridView1.SortOrder.Equals(SortOrder.None)) 
     { 
      // your code here 
     } 
    } 

問候

0

從你鏈接的職位的建議是相當不雅;)

I suggest you read this,這是非常簡單的例子。它使用DataView對數據進行排序。如果你想「記住」無論出於何種原因,這是用來排序電網的最後排序表達式,你可以簡單地把它在ViewState中存儲爲這樣:

ViewState["LastSortExpression"]=e.SortExpression; 

,並根據需要檢索它的回發。