自定义控件的PostBack数据

如果自定义控件需要postback数据,实现 LoadPostData 方法
它在 IPostBackDataHandler 接口中。在该方法中通过postCollection对象可以提取画面上所有控件的
ViewState值。如果自定义控件是符合控件,postCollection尤其有用, 它可以允许你提取所有子控件
的ViewState值。
注意:
   自定义控件的主体必须是某个html标准控件,在render(绘制)时,必须输出其type属性。这样做,
asp.net服务才能正确地识别该自定义控件,并正确的提取 postdata. 如果不这样做,asp.net服务识别
不出控件的类型,LoadPostData不能被调用。

当页面有嵌套时(例如,使用母板、iframe),上述的方法仍然会出问题,.net会丢弃自定义控件中的
子控件,这时可以过载 loadviewstate函数,在基类加载viewstate之后, 使用Page.Request.Form属性
把自己的子控件的值存储在viewstate中。

 

在适用母板时, 除了要重载loadpostdata以外, 还要重载
OnInit方法,在其中注册回发脚本。

 protected   override   void   OnInit(EventArgs   e)   

 {   

 base.OnInit   (e);   
    
  Page.RegisterRequiresPostBack(   this   )   ;   

 }

注意, 含有母板的asp.net页面的回发 , 是用$符号连接各级容器的

所以,自定义控件里的控件ID, 一定要适用 UniqueID, 否则就会找不到

loadpostdata就会找不到控件。

另外,因为使用了$ 符号, 会发生与jquery语法冲突的现象, 要尽量
避免同时使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值