c# - 事件处理程序没有被调用

标签 c# asp.net event-handling

在下面的代码中,asp 不进入操作监听器 (Button1_Click)。 有人可以帮忙吗?

protected void Project_Click(object sender, EventArgs e)
    {
        Courses.ActiveViewIndex = 0;

        String ConnStr = ConfigurationManager.ConnectionStrings["MyRuMoR"].ToString();
        SqlConnection conn = new SqlConnection(ConnStr);
        conn.Open();
        SqlCommand cmd = new SqlCommand("ViewProjects", conn);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("@course_code", "PHYS305");

        SqlDataReader rdr = cmd.ExecuteReader();

        int c = 1;

        while (rdr.Read())
        {
            String name = rdr.GetString(rdr.GetOrdinal("name"));
            int p_id = rdr.GetInt32(rdr.GetOrdinal("p_id"));

            LinkButton lb = new LinkButton();
            lb.ID = p_id.ToString();

            lb.Text = "Project " + c + " is: " + name;
            form1.Controls.Add(lb);

            lb.Click += new EventHandler(this.Button1_Click);

            c++;
        }
        conn.Close();
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write("Hello");
    }

最佳答案

您需要阅读 ASP.NET page lifecycle .

当涉及动态控件时,您需要在回发时重新创建它们,否则它们将不存在并且附加的事件处理程序将不会触发。

动态控制最好在 PreInit 上创建页面的事件。

如上所述here :

protected virtual void OnPreInit(EventArgs e)
{
   base.OnPreInit(e);
   //your code
}

关于c# - 事件处理程序没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8629562/

相关文章:

javascript - 客户端选项附加到 asp.net DropDownList 控件和 ViewState 问题

c# - 使用 linq 检查记录是列表中的最后一个还是第一个

ASP.Net 事件循环顺序

c# - 如何监听 Microsoft-Windows-NetworkProfile/操作日志中的事件?

c# - 在 SerialPort 上设置 DTR、RTS、CTS、DSR 和 Xonn/Xoff

c# - 如何创建 WPF 形状编辑器?

c# - Linq 除了返回整个表

android - on"XYZ"回调事件如何工作?

C# 问题读取控制台输出到字符串

c# - 从 IEnumerable<int> 到 IEnumerable<dynamic> 的隐式转换