首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未调用事件处理程序

未调用事件处理程序
EN

Stack Overflow用户
提问于 2011-12-25 20:20:44
回答 3查看 1.9K关注 0票数 2

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

代码语言:javascript
复制
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");
    }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-25 23:49:03

是的,不仅仅是理解动态控件,你还需要理解它们,这是ASP.NET团队成员写的关于它们的最好的文章之一。

TRULY UNDERSTANDING DYNAMIC CONTROLS

票数 2
EN

Stack Overflow用户

发布于 2011-12-25 20:25:45

你需要阅读ASP.NET page lifecycle上的资料。

对于动态控件,需要在回发时重新创建它们,否则它们将不存在,附加的事件处理程序也不会激发。

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

如上所述,here

代码语言:javascript
复制
protected virtual void OnPreInit(EventArgs e)
{
   base.OnPreInit(e);
   //your code
}
票数 4
EN

Stack Overflow用户

发布于 2011-12-25 23:27:14

您必须将创建动态控件的全部或部分代码放在页面生命周期的Pre_Init事件中,如下所示

代码语言:javascript
复制
protected void Page_PreInit(object sender, EventArgs e)
{
   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);
}

然后,只有它才能实现你想要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8629562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档