asp.NetGridview行バインドイベントの新しい体験

1476 ワード

ネット上でイベントの実行順序を検索し、テストした結果、ページがある場合は正しくありません.
イベントの実行順序:
一、GridViewはバインドされたデータを表示する(デフォルトは5行):
 
  
DataBinding
RowCreated:Header[0]
RowDataBound
RowCreated:DataRow[1]
RowDataBound
RowCreated:DataRow[2]
RowDataBound
RowCreated:DataRow[3]
RowDataBound
RowCreated:DataRow[4]
RowDataBound
RowCreated:DataRow[5]
RowDataBound
RowCreated:Footer[6] // ,
RowDataBound
RowCreated:Pager[7]
RowDataBound
DataBound

手順は次のとおりです.
DataBinding
RowCreated
RowDataBound
......
DataBound
二、GridViewがページングボタンをクリックした時のイベント発生順序:
 
  
RowCommand
PageIndexChanging
PageIndexChanged
DataBinding
RowCreated:Header[8]
RowDataBound
RowCreated:DataRow[9]
RowDataBound
RowCreated:DataRow[10]
RowDataBound
RowCreated:DataRow[11]
RowDataBound
RowCreated:DataRow[12]
RowDataBound
RowCreated:DataRow[13]
RowDataBound
RowCreated:Footer[14]
RowDataBound
RowCreated:Pager[15]
RowDataBound
DataBound

つまり、ページジャンプボタンをクリックすると、表示するページの資料のみがバインドされます.上記のように、RowDataBoundではすべての資料がバインドされません.この場合、統計すると、現在のページの合計(上記9-13筆の資料)しか統計されません.
今から思えば、バインドする資料を統計するしかない.GridViewのイベントでは処理できません.