读书人

.请教:动态加载控件Page.LoadControl

发布时间: 2012-01-20 18:53:53 作者: rapoo

.请问:动态加载控件Page.LoadControl 怎么对定位到加载的控件的id
动态加载一个用户控件test1.ascx
里面有个 <TD> <INPUT id=TextBox2 name=TextBox2> </TD>
<TD> <INPUT id=Button1 onclick=modify(this) type=button value=修改> </TD>
===============================================================
a.aspx动态加载到PlaceHolder DynamicControl
加载代码:
string strVisulPath = "TemplateControl\\justtest.ascx ";
DynamicControl.Controls.Add(Page.LoadControl(strVisulPath));
===============================================================
a.aspx.cs
请问里面怎么对TextBox2赋值?

[解决办法]
不是runat=server的?
[解决办法]
Control ctl = Page.LoadControl(strVisulPath);
ctl.id= "TextBox2 "; //赋id值
DynamicControl.Controls.Add(ctl);

然后你要使用这个控件的时候先查找这个控件:

Control ctl = DynamicControl.FindControl( "TextBox2 ");



[解决办法]
HtmlInputButton hib = DynamicControl.FindControl( "Button1 ") as HtmlInputButton;
Response.Write(hib.Value);

会不会使ID的问题呢?

用户控件的Id要有一个$隔开的前缀
[解决办法]
用户控件最好加个public 属性.

如:

public TextBox TextBox1
{
get
{
return this.TextBox2;
}
}

//然后就可在外访问了.

读书人网 >asp.net

热点推荐