代码之家  ›  专栏  ›  技术社区  ›  Oscar Cabrero

客户端ID是在哪个页面生命周期生成的?

  •  6
  • Oscar Cabrero  · 技术社区  · 16 年前

    我正在以编程方式将Webcontrols添加到用户控件中,我还添加了一个javascript事件,将controlID作为参数传递,但clientID是我分配的,它不包含asp.net生成的那个

       var txt = new TextBox();
       txt.ID = "MyID"+Number;
    
       chkBox.Attributes.Add("onClick", "EnableTxtBox('" +txt.ClientID + "');");
    

    我可以通过添加父控件ID来解决这个问题

       chkBox.Attributes.Add("onClick", "EnableTxtBox('" + this.ClientID+"_"+txt.ClientID + "');");
    

    客户端ID是在哪个页面生命周期生成的?

    2 回复  |  直到 16 年前
        1
  •  7
  •   baretta    16 年前

    在添加属性之前,您需要将控件添加到控件层次结构中。

       var txt = new TextBox();
       txt.ID = "MyID"+Number;
       Controls.Add ( txt );
       chkBox.Attributes.Add("onClick", "EnableTxtBox('" +txt.ClientID + "');");
    

    ControlCollection不是普通的集合;当添加控件时,它会通知所有者控件,控件可以采取适当的行动。

        2
  •  2
  •   tsimon    16 年前

    您应该能够在OnPreRender()过程中添加该属性。INamingContainer有时很疼。..

    推荐文章
    nat  ·  主页面破坏pre_init
    13 年前