没有办法按照你的想法实现。因为控件a是作为页面b的子控件的形式存在的,那么所有的事件触发都是先执行父控件的,然后才能执行子控件的,否则,试想:皮之不存毛将焉附?
解决:把判断和跳转过程写到一个函数里面,然后在页面的Page_Load的时候,先调用这个判断函数就可以了。

解决方案 »

  1.   

    你把验证工作放在UserControl的Page_Init里做试试看呢。
      

  2.   

    UserControl里有Page_Init这个方法吗?
      

  3.   

    难道不能直接到Web.config里面去配置文件
    实现验证拦截吗
    他要是没登录就把他拦截转至登录页面不就OK?!
      

  4.   

    在usercontrol里
    Page_load里的代码改为其它函数
    比如:
    ascx里
    load()
    {
      //原来page_load的代码
    }
    在aspx的
    Page_load
    {
       ascx.load() //执行ascx里的方法
       //这儿执行你的东西
    }
      

  5.   

    Page_Init和Page_Load一样,是不存在的,是手工添加的。你可以打开隐藏区域数据就可以看到里面有:this.Load+=new System.EventHandler(this.Page_Load);如果你添加:this.Init+=new System.EventHandler(this.Page_Init);这样就有了Page_Init了。简单的方法是:protected override void OnInit(System.EventArgs e)这个已经有了(在隐藏区域里)对Page_LOad,你可以不要,直接写protected override void OnLoad(System.EventArgs e)结果一样的,但一定要保证里面的base.OnLoad(e)在最后面调用且能被正确的调用。
      

  6.   

    softchao(【∵笑了∵】) 我看了几个用web.config进行验证的配置,至今似懂非懂。它能判断一个用户是否登录,但是他能判断这个用户拥有什么权限吗?
    比较高级管理员、管理员、普通用户的差别???
    同一页面可能会有增加和删除的功能,A用户可能只有删除功能,B用户可能只有增加功能,而C用户可能两个功能都有。这个web.config也能控制????其他几位朋友先谢啦!不过你们的方法似乎都是要在页面里面调用验证方法,那道理是一样的。看来只能写一个验证方法然后在每个页面调用了。