由于这个按钮的Click事件是动态绑定的,无法知道原方法。请问用什么方法才能在后台代码中执行该方法呢?类似于直接写
button1.Click()
的这种

解决方案 »

  1.   


    根本就没有这个方法....我就是不知道这个Button绑定了哪一个方法啊...
      

  2.   


    找不到PerformClick····还有别的方法吗?希望找到一种可以通用的方法,比如也可以调用ComboBox 的SelectedValueChanged  事件等..
      

  3.   

     我就知道这几种了
    (1)button1.PerformClick();
    (2)button1_Click(null,null);
    (3)button_Click(null,new EventArgs());
      

  4.   


            protected void Page_Load(object sender, EventArgs e)
            {
                Button1.Click += new EventHandler(Button1_Click);
                Button1_Click(null, null);
            }        void Button1_Click(object sender, EventArgs e)
            {
                Response.Write("diannimei");
            }
      

  5.   

     其实我不懂他的意思, 
     你是不是要说, 你想制定一个click事件?
      

  6.   


    这样说吧,btn1已经绑定了一个click事件,但我不知道是哪一个现在我就想直接调用btn1的click事件而已,最好还是能通用,比如下次调用的是ComboBox 的SelectedValueChanged 事件等......
      

  7.   

    都说了我不知道绑定的方法名是什么...去哪里找所谓的Button1_Click.....哎
      

  8.   

    你的需求需要用反射取出事件绑定的委托实例,然后执行PropertyInfo pi = Button1.GetType().GetProperty("Events", BindingFlags.Instance | BindingFlags.NonPublic);
    EventHandlerList eList= (EventHandlerList)pi.GetValue(Button1, null);
    FieldInfo fieldInfo = (Button1.GetType()).GetField("EventClick", BindingFlags.Static | BindingFlags.NonPublic);
             
    Delegate del = eList[fieldInfo.GetValue(null)];del.DynamicInvoke(null, null);
    注:Button1为你要执行事件的按钮ID