由于每次点击任何一个runat=server的button控件都会执行page_load来页面重载,那么如何在page_load里有什么办法可以知道是由哪个控件引起的吗?用此方法来对待不同的事件。在一个复杂点的页面上会用到得这种功能。谢谢

解决方案 »

  1.   

    我觉得可以用一个string变量来指示。
    比如BUTTON1点击后你让它等于button1,再存入session。意见而已,期待更好的方法。
      

  2.   

    仔细分析微软提供的WebControl,你就会发现它使用了两个隐藏域__EVENTTARGET, __EVENTARGUMENT__doPostBack()这个方法也是需要传递这两个参数地。__EVENTTARGET用于区分是哪个控件触发的事件,在RaisePostEvent方法重组事件。根据这样一个原理,你可以利用__doPostBack()方法~~,或者,你自己加个隐藏域,提交之前把控件的ID放进去,然后提交。在Page_Load里判断这个隐藏域的值~~
      

  3.   

    跟e事件有关
    应该能从page_load过程的参数ByVal e As System.EventArgs的某个属性中获得,
    仔细研究一下这个参数吧。如果问题解决了,结帖时要把解决方法说清楚哦。
      

  4.   

    晕!你用一个ViewState不就可以了,有一个最傻瓜的办法,在页面上放一个webForm 的lable ,用它的text来存放,给他设成visible=false其实这个就是 fangxinggood(JustACoder) ( ) 信誉:106 说的隐藏域的意思!!
      

  5.   

    if (document.Form[3] != null && document.Form[3].ToString() == 按钮的text文本)
    {
        此按钮的事件处理;
    }