程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET框架數據回發與事件回發

ASP.NET框架數據回發與事件回發

編輯:關於ASP.NET

源從何起

經常在網上的論壇看到有人問Page類的方法RegisterRequiresPostBack有什麼用,它是做什麼的呢?

簡短的官方解釋

MSDN對它的解釋是將控件注冊為要求在頁面回發至服務器時進行回發處理的控件,說真的我知道這段話 想描述些什麼,但是你知道怎麼用它,在哪裡用嗎?

尋找回發真相

首先ASP.NET框架規定,凡是要進行數據回發的控件都要實現IPostBackDataHandler 接口,它有兩個方 法LoadPostData、RaisePostDataChangedEvent,該接口方法將可以進行回發數據處理,並可以引發任何回 發數據已更改的事件.還有就是要在頁生命周期的 Page_PreRender 事件中或該事件之前向頁面注冊控 件.

為什麼要這裡注冊呢?好,那我們看看篇頭提到的Page. RegisterRequiresPostBack這個方法的源碼就 會明白了.

public void RegisterRequiresPostBack(Control control)

{

         // Fail if the control is not an IPostBackDataHandler (VSWhidbey 184483) 指定控件必須實現 IPostBackDataHandler 接口

        if (!(control is IPostBackDataHandler)) {

            IPostBackDataHandler dataHandler = control._adapter as IPostBackDataHandler;

            if (dataHandler == null)

                 throw new HttpException(SR.GetString (SR.Ctrl_not_data_handler));

        }

        if (_registeredControlsThatRequirePostBack == null)

            _registeredControlsThatRequirePostBack = new ArrayList();

             // 這裡將需要注冊回發的控件標識保存到數組列表中.

         _registeredControlsThatRequirePostBack.Add(control.UniqueID);

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved