例如我在后台page_load事件中有一个字符串:string str = "<input type='button' value='动态调用其他事件'/>";
那我运行这个页面的时候如何让这个动态生成的按钮去调用其他事件,例如我在后台还有个Button2_Click()事件,那我想调用这个事件,应该怎么去调用

解决方案 »

  1.   

    string str = " <input type='button' onclick="document.getElementById('btnId').click()" value='动态调用其他事件'/>"; btnId为你后台按钮id
      

  2.   


    //假设Button2的事件为
    protected void Button2_Click(object sender,EventArgs e)
    {
      //code
    }//则动态生成的按钮可如下
    Button Button1 = new Button();
    Button1.Name = "b1";
    Button1.ID = "Button1";
    Button1.Click += new EventHandler(Button2_Click);
      

  3.   

    这种是c#的写法,就是注册一个事件+=
    这种事js写法的按钮
      

  4.   

    楼主的问题放asp.net比较合适吧.
    string str = " <input type='button' value='动态调用其他事件'/>"; 
    你动态生成的控件是html控件吧,(不是服务器控件),所有用2楼的方式应该是不能实现的.
    '动态调用其他事件' 是指调用其它服务器控件的事件吗?
    如果是的话 
    value='动态调用其他事件' 可以改用onclick吗?
    onclick="__doPostBack('服务器控件名','')"__doPostBack带有两个参数:eventTarget和eventArgument。
    eventTarget是引起回送的控件的ID,eventArgument是回调参数(与控件相关的附加数据)。现在不好实验,大概是这个样子的.
      

  5.   

    如果楼主是要问winform的动态事件,这个就好办了.
    Button1.Click += new EventHandler(Button2_Click); 
    这种是c#的写法,就是注册一个事件+= 
      

  6.   

    页面代码如下:<script type="text/javascript">
    function ExcuteOnServer(){
        alert('dddd');
        //但是下面这种用法不可以调用LinkButton1的事件
        _doPostBack('LinkButton1','');
          //下面的这种调用是可以直接调用LinkButton1的事件
        //document.getElementById('LinkButton1').click();
    }
    </script>
    <asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click"></asp:LinkButton>
            <input type="button" id="Button4" value="Button" onclick="ExcuteOnServer();" />后台LinkButton1的事件
     protected void LinkButton1_Click(object sender, EventArgs e)
        {
            Response.Write("<script>alert('LBBTN1')</script>");
        }
      

  7.   

    为什么_doPostBack('LinkButton1','');这种用法不能调用?