【问题标题】:ASP.NET Button on Placeholder and Placeholder in an User Control (ascx) file Button event not fired用户控件 (ascx) 文件中占位符和占位符上的 ASP.NET 按钮未触发按钮事件
【发布时间】:2011-12-31 22:03:17
【问题描述】:

我正在使用占位符在用户控件上动态创建链接按钮,并且附加到链接按钮 click+=new Event(Button_Click) 的事件处理程序未触发

提前致谢


代码片段

   protected override void OnInit(EventArgs e)
             MenuListPlaceHolder.Controls.Add(new LiteralControl("<li>"));
             ctrl.ID = this.UniqueID + (nCounter++).ToString();
             ctrl.Text = cardType.Name;
             ctrl.Click += new EventHandler(this.CardName_Click);            
             MenuListPlaceHolder.Controls.Add(ctrl);
             MenuListPlaceHolder.Controls.Add(new LiteralControl("</li>"));

当点击回发事件被触发但不执行 CardName_Click


【问题讨论】:

    标签: asp.net events user-controls placeholder childcontrol


    【解决方案1】:

    您必须将其附加到Page_Load 事件中

    像这样:

    protected void Page_Load(object sender, EventArgs e) {
        this.Btn.OnClick+=new Event(Button_Click) 
    }
    

    你应该检查一下:here to learn about page cycle

    【讨论】:

    • 根据您的链接,来自 OP 的代码应该进入 PreInit。 OnInit 在 Page_load 之前触发,所以我很难相信您的建议对 OP 有效
    • 是的,但是 PreInit 你忘记了一些你应该在每个页面请求上附加委托而不是一次的东西,所以我是根据我的经验来说话的。
    猜你喜欢
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 2016-08-02
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多