在實現asp.net的自定義控件中,若要實現數據的回發或者post數據,那自義控件必須實現IPostBackDataHandler接口, 在該接口中有兩個方法一個是LoadPostData,另一個是RaisePostDataChangedEvent。第一個方法用於在回發數據時,填充自定義控件的相關屬性,第二個方法用於激發控件相關的事件。也就是說這兩個方法,應該是在提交數據的時候進行調用的。
可是,我們在實現自己的控件時,雖然繼承了 IPostBackDataHandler,但是在提交數據的時候確發現程序沒有去調用 IPostBackDataHandler 中的方法。經過研究發現,若要實現數據回發,除了需要實現IPostBackDataHandler接口外,還需要將控件注冊成需要回發數的控件。要實現注冊,就是在自定義控件裡重寫OnPreRender方法,並在該方法中調用Page.RegisterRequiresPostBack(this);這句代碼。寫法如下:
復制代碼 代碼如下:
public class MyControl : WebControl, IPostBackDataHandler{
protected override void OnPreRender(EventArgs e)
{
Page.RegisterRequiresPostBack(this);
base.OnPreRender(e);
}
}
通過實現以上代碼,當在提交數據時,就會發現IPostBackDataHandler接口的方法,就被調用了。接下來,怎麼做,你懂的啊。