进入页面立即调用该页面上用户控件ascx中方法

背景:

如页面A,A上含有用户控件B,目标是刚进入A页面就立即调用用户控件B中方法。

刚开始直接在A页面page_load里调用导致出错。

出错原因:与页面生命周期有关,真实情况是首先执行A页面的page_load,完毕后再执行B页面的page_load。而当直接写在A的page_load中,则导致先调用了B的方法,再执行B的page_load,顺序错误出现莫名其妙的错(我的报错:“SelectedIndex”和“SelectedValue”属性互相排斥。)。


解决方法:

控件B中方法的调用写在A页面的page_load之后,即重写OnPreRender方法

这时需要了解页面执行顺序:http://www.cnblogs.com/yeminglong/archive/2012/10/16/2725664.html

1. OnPreInit
2. OnInit
3. OnInitComplete
4. OnPreLoad
5. Page_Load
6. OnLoad
7. Button_Click
8. OnLoadComplete
9. OnPreRender


在A中重写OnPreRender方法代码:

        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);
            Bind();
        }

bind()中即是调用控件B中的方法的方法


-------------------------------分隔------------------------------------

by the way,记录一下调用用户控件方法的方法:

用户控件ID.方法名(),即infoControl.ShowCustomerInfo(, , , );


by the way,记录一下调用用户控件的方法:

<%@ Register Src="~/Controls/CustomInfoControl.ascx"  TagName="ReadCustom" TagPrefix="ZDControl" %>

<ZDControl:ReadCustom ID="infoControl" ProductGuid="modifyCustomer" runat="Server" Visible="true" />

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值