GridView事件DataBinding,DataBound,RowCreated,RowDataBound區別及執行順序分析
嚴格的說,DataBinding,DataBound並不是GridView特有的事件,其他的控制元件諸如ListBox等也有DataBinding,DataBound事件。
DataBinding事件
MSDN解釋:Occurs when the server control binds to a data source.
This event notifies the server control to perform any data-binding logic that has been written for it.
譯為:該事件當伺服器控制元件繫結資料時發生。
DataBound事件
MSDN解釋:Occurs after the server control binds to a data source.
This event notifies the server control that any data binding logic written for it has completed.
譯為:該事件當伺服器控制元件完成資料繫結後發生。
RowCreated事件
MSDN解釋:Occurs when a row is created in a GridView control.
譯為:當GridView的行被建立時發生。
RowDataBound事件
MSDN解釋:Occurs when a data row is bound to data in a GridView control.
譯為:當GridView的行被繫結資料時發生。
四個事件的執行順序:
假定GridView有3行資料
aspx程式碼
- <asp:GridView
- ID="GridViewMain"
- runat="server"
- AutoGenerateColumns="False"
- OnDataBinding="GridViewMain_DataBinding"
- OnDataBound="GridViewMain_DataBound"
- OnRowCreated="GridViewMain_RowCreated"
- OnRowDataBound="GridViewMain_RowDataBound"
- >
cs程式碼(只含事件頭)
- protected void GridViewMain_DataBinding(object sender,EventArgs e)
- {
- }
- protected void GridViewMain_DataBound
- (object sender,EventArgs e)
- {
- }
- protected void GridViewMain_RowCreated(object sender, GridViewRowEventArgs e)
- {
- }
- protected void GridViewMain_RowDataBound(object sender, GridViewRowEventArgs e)
- {
- }
發生次序是:
1. DataBinding
2. RowCreated
3. RowDataBound
4. RowCreated
5. RowDataBound
6. RowCreated
7. RowDataBound
8. DataBound
GridView取得資料有3條,因此Row的相關事件執行3次。
另外,從字面本身也可知事件之間的區別
比如,DataBound,DataBinding兩個事件,單詞Bound是Bind的過去式,即DataBound是繫結事件完成後發生的。
還有諸如RowDeleted,RowDeleting,都可以從詞義本身的差別加以區分。
相關文章
- JavaScript執行順序分析JavaScript
- [VSIX]build事件初探之執行順序UI事件
- Sql執行順序SQL
- 任務執行順序
- for語句執行順序
- JavaScript的執行順序JavaScript
- laravel Event執行順序Laravel
- mySQL 執行語句執行順序MySql
- Jmeter之八大可執行元件及執行順序JMeter元件
- 深入瞭解Flutter的isolate(1) ---- 事件迴圈(event loop)及程式碼執行順序Flutter事件OOP
- 圖解React的生命週期及執行順序圖解React
- 【實驗】where子句的解析順序及執行效率
- JavaScript程式碼執行順序和資料型別JavaScript資料型別
- 事件迴圈 EventLoop(Promise,setTimeOut,async/await執行順序)事件OOPPromiseAI
- sql mysql 執行順序 (4)MySql
- SQL語句執行順序SQL
- js執行順序Event LoopJSOOP
- JavaScript for迴圈 執行順序JavaScript
- JavaScript 執行順序淺析JavaScript
- SQL語句執行順序及建議--歸納整理SQL
- Linux c多執行緒執行順序Linux執行緒
- 關於 Promise 的執行順序Promise
- Spring Aop的執行順序Spring
- js解惑-函式執行順序JS函式
- SQL 語句的執行順序SQL
- Select語句執行順序
- 命令執行順序控制與管道
- java執行緒優先順序Java執行緒
- CSS規則的執行順序CSS
- Java類的基本執行順序Java
- SQL 執行順序 你懂的SQL
- JUnit 標籤執行順序解析
- pipeline的執行順序
- mysql 語句的執行順序MySql
- 執行緒執行順序——CountDownLatch、CyclicBarrier 、join()、執行緒池執行緒CountDownLatch
- 關於瀏覽器裡事件的捕獲和冒泡及監聽器執行的順序瀏覽器事件
- Java中如何保證執行緒順序執行Java執行緒
- javascript執行機制之執行順序詳解JavaScript