GridView中的RowCommand與Sorting事件的一些問題

MSDN如下描述RowCommand:

在單擊 GridView 控件中的按鈕時,將引發 RowCommand 事件。這使您可以提供一個這樣的事件處理方法,即每次發生此事件時執行一個自定義例程。

GridView 控件中的按鈕也可調用該控件的某些內置功能。若要執行這些操作之一,請將按鈕的 CommandName 屬性設置爲下表中的某個值。

“Cancel”“Delete”“Edit”“Page”“Select”“Sort”“Update”  表略

 

儘管單擊按鈕時將引發 RowCommand 事件,但仍建議您使用該表中列出的事件來執行該操作。

GridViewCommandEventArgs 對象傳遞到事件處理方法,以便您可以確定被單擊按鈕的命令名和命令參數。


MSDN如下描述Sorting:

單擊用於列排序的超鏈接以後,在 GridView 控件處理相應的排序操作之前,將引發 Sorting 事件。這使您可以提供一個這樣的事件處理方法,即每次發生此事件時執行一個自定義例程(如取消排序操作)。

GridViewSortEventArgs 對象將被傳遞給事件處理方法,以便您可以確定列的排序表達式,還可以指示應取消選擇操作。若要取消選擇操作,請將 GridViewSortEventArgs 對象的 Cancel 屬性設置爲 true


 

=========================================================我的分界線

那麼,如果用SqlDataSource控件綁定數據源的話,GridView是一個很方便的東西,事件處理、分頁、排序都全自動了。但在分層開發過程中,恐怕不能直接使用控件綁定數據源的方法,因爲和數據庫直接打交道的要讓數據層DAL去做。那麼如果還要使用GridView來顯示數據的話,就有很多東西需要編程實現。

如分頁:

如排序:

 

 

另外,看下ViewState這個東西:

ViewState 是什麼?

ViewState 用來跟蹤和保存控件的狀態信息。否則這些信息可能會丟失,原因可能是這些值不隨着 form 回發,或者根本就不在 page 的 html 中。
ViewState 中保存着代碼中改變的控件屬性,通過代碼綁定到控件的任何數據,以及由用戶操作觸發,回發的任何更改。
ViewState 還提供了一個狀態包(StateBag), 這是一個特殊的集合或字典(collection or dictionary), 可以用來保存,通過一個 key 來恢復任意的對象或者值。

ViewState 的格式

保存在表單中的 __VIEWSTATE 隱藏字段。是 Base64 編碼過的,而不是加密!
但要加密也是可以的(設置 enableViewStateMac 來使用 machine key 進行 hash)
加密:設置 machineKey 驗證, 但這必須在機器級別設置,需要更多的資源,所以不推薦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章