在按钮的时间中,我加入了参数,即:__EVENTARGUMENT
onclick="javascript:__doPostBack('ctl02','aaabbb')"
请问我在按钮的服务器事件处理中如何获得这个参数:
protected void btnSubmit_Click(object sender, EventArgs e)
{
}
就是说在btnSubmit_Click如何通过EventArgs e来获得我传递的参数'aaabbb',谢谢!

解决方案 »

  1.   

    tryRequest.Form["__EVENTARGUMENT"]by the way, you shouldn't output "__doPostBack", use Page.GetPostBackEventReference Methodsee
    http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemWebUIPageClassGetPostBackEventReferenceTopic2.asp?frame=true
      

  2.   

    谢谢思归!我想知道btnSubmit_Click(object sender, EventArgs e)中,难道这里的EventArgs不和__EVENTARGUMENT相关联?
    这样的话EventArgs参数有何意思?谢谢!
      

  3.   

    __doPostBack一般是用于不能提交的控件做提交之用的,它的第二个参数是用在IPostBackEventHandler的RaisePostBackEvent上的,往往是在自定义控件里WebControls.Button是实现了IPostBackEventHandler,但它忽视这个参数
      

  4.   

    基本明白了,谢谢!
    也就是说btnSubmit_Click(object sender, EventArgs e)中的EventArgs参数实际上是没有意义的,对吧。
      

  5.   

    如果你需要Button记住参数的话,设置它的CommandArgument属性,然后处理它的Command事件
      

  6.   

    谢谢!我想做的是,页面需要很多个提交按钮。但是我不想建这么多个Button控件,我想的就是只建一个Button控件,然后按钮提交的时候就利用__EVENTARGUMENT来区分是哪个按钮提交的,然后在服务器事件处理中就根据这个参数来执行不同的代码。您觉得呢?谢谢!
      

  7.   

    you can create multiple buttons and use only one handler, for example<asp:Button ID="btn1" runat="server" Text="1" OnClick="btnSubmit_Click" /><asp:Button ID="btn2" runat="server" Text="2" OnClick="btnSubmit_Click" />....protected void btnSubmit_Click(object sender, EventArgs e)
    {
      Button btn = (Button)sender;
      if (btn == btn1)
         //do thing for btn1
      else if (btn == btn2)
         //do thing for btn2 
      //....
    }