我在LOAD事件中动态加载按钮:
lnkButton = new Button();
lnkButton.ID = "lnk1";
lnkButton.Text = "Test";
lnkButton.Click += new System.EventHandler(this.LinkButtonClick);
...
同时定义了事件:
protected void LinkButtonClick(object sender, System.EventArgs e)
{
   //事件代码
}但运行时发现事件代码始终不起作用,此程序从VS2003中升级过来,在VS2003中运行没有问题。
请问各位高手,Why?

解决方案 »

  1.   

    <%@ Page Language="C#" AutoEventWireup="true"%>
      

  2.   

    AutoEventWireup="true"必须,
    也可以写在配置文件里
    <configuration>
       <system.web>
          <pages autoEventWireup="true" />
       </system.web>
    </configuration>
      

  3.   

    应该没有问题,你在button那设个断点,或者单步跟一下程序。
      

  4.   

    ???
    楼主为什么要这样写:
    lnkButton = new Button();
      

  5.   

    Red_angelX(当你手淫你会想起谁) ----------------------
    名字很刁
      

  6.   

    我加了
    AutoEventWireup="true"

    <configuration>
       <system.web>
          <pages autoEventWireup="true" />
       </system.web>
    </configuration>
    还是不行
    protected void Page_Load(object sender, EventArgs e)
    {
         if (!base.IsPostBack)
        {
        }
       lnkButton = new Button();
       lnkButton.ID = "lnk1";
       lnkButton.Text = "Test";
       lnkButton.Click += new System.EventHandler(this.LinkButtonClick);}
      

  7.   

    拷贝下面的代码直接运行<%@ Page Language="C#" AutoEventWireup="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
      <title>无标题页</title>  <script runat="server">
        protected void Page_Load( object sender, EventArgs e )
        {
          Button lnkButton = new Button();
          lnkButton.ID = "lnk1";
          lnkButton.Text = "Test";
          lnkButton.Click += new System.EventHandler(this.LinkButtonClick);
          form1.Controls.Add(lnkButton);
        }
        void LinkButtonClick( object sender, System.EventArgs e )
        {
          Response.Write("ok");
        }
      </script></head>
    <body>
      <form id="form1" runat="server">
        <div>
        </div>
      </form>
    </body>
    </html>
      

  8.   

    使用楼上代码没有问题,谢谢
    我的代码中按钮是加入到
    <asp:table>
     <asp:TableRow>
       <asp:TableCell>
          ...//加入按钮
       </asp:TableCell>
     </asp:TableRow></asp:table>
    中的,所有不起作用,有办法解决吗
      

  9.   

    <%@ Page Language="C#" AutoEventWireup="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
      <title>无标题页</title>  <script runat="server">
        protected void Page_Load( object sender, EventArgs e )
        {
          Button lnkButton = new Button();
          lnkButton.ID = "lnk1";
          lnkButton.Text = "Test";
          lnkButton.Click += new System.EventHandler(this.LinkButtonClick);
          c.Controls.Add(lnkButton);
        }
        void LinkButtonClick( object sender, System.EventArgs e )
        {
          Response.Write("ok");
        }
      </script></head>
    <body>
      <form id="form1" runat="server">
        <asp:Table ID="a" runat="server" BorderWidth="2">
          <asp:TableRow ID="b" runat="server">
            <asp:TableCell ID="c" runat="server">
            </asp:TableCell>
             <asp:TableCell ID="TableCell1" runat="server">都可以
            </asp:TableCell>
          </asp:TableRow>
        </asp:Table>
      </form>
    </body>
    </html>
      

  10.   

    我找到原因了,多了一条语句:
      lnkButton.Dispose();
    但在VS2003中运行正常
    谢谢各位高手,特别是net_lover