生成客户端ID的页面生命周期是什么?

Osc*_*ero 5 .net c# asp.net page-lifecycle

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

   var txt = new TextBox();
   txt.ID = "MyID"+Number;

   chkBox.Attributes.Add("onClick", "EnableTxtBox('" +txt.ClientID + "');");
Run Code Online (Sandbox Code Playgroud)

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

   chkBox.Attributes.Add("onClick", "EnableTxtBox('" + this.ClientID+"_"+txt.ClientID + "');");
Run Code Online (Sandbox Code Playgroud)

生成客户端ID的页面生命周期是什么?

bar*_*tta 7

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

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

ControlCollection不是普通的集合; 它会在添加控件时通知所有者控件,并且控件可以采取适当的操作.