动态加载一个用户控件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赋值?

解决方案 »

  1.   

    id=TextBox2
    这个分好id="TextBox2"也不知道为什么没有了 应该不是这个问题
      

  2.   

    这是我的代码
       HtmlInputButton hib = DynamicControl.FindControl("Button1") as HtmlInputButton;
            Response.Write(hib.Value);
      

  3.   

    Control ctl = Page.LoadControl(strVisulPath);
    ctl.id="TextBox2";   //赋id值
    DynamicControl.Controls.Add(ctl);然后你要使用这个控件的时候先查找这个控件:Control ctl = DynamicControl.FindControl("TextBox2");
      

  4.   

    HtmlInputButton hib = DynamicControl.FindControl("Button1") as HtmlInputButton;
    Response.Write(hib.Value);会不会使ID的问题呢?用户控件的Id要有一个$隔开的前缀
      

  5.   

    用户控件最好加个public 属性.如:public TextBox TextBox1
    {
      get
     {
      return this.TextBox2;
     }
    }//然后就可在外访问了.
      

  6.   

    TextBox tb1 = DynamicControl.Controls.FindControl("TextBox2") as TextBox;
      

  7.   

    动态加载一个用户控件test1.ascx
    里面有个 <TD><INPUT id=TextBox2 name=TextBox2> </TD>
    <TD><INPUT id=Button1 onclick=modify(this) type=button value=修改> </TD> 
    -------------------
    根据你上1个贴,你的test1.ascx控件也是动态生成的吧,应该没有对应的test1.ascx.cs文件,所以你的TextBox2也应该是html控件,而不是服务器短控件,这样的话可能就需要使用JS来赋值了。
      

  8.   

    慕白兄 和  007 的
    解释对的因为我看了一下源码 
    发现id前面都加了ctl02_
      

  9.   

    回复人:BearRui(AK-47) ( 两星(中级)) 信誉:110  2007-08-17 09:59:08  得分:0

    动态加载一个用户控件test1.ascx
    里面有个 <TD><INPUT id=TextBox2 name=TextBox2> </TD>
    <TD><INPUT id=Button1 onclick=modify(this) type=button value=修改> </TD>
    -------------------
    根据你上1个贴,你的test1.ascx控件也是动态生成的吧,应该没有对应的test1.ascx.cs文件,所以你的TextBox2也应该是html控件,而不是服务器短控件,这样的话可能就需要使用JS来赋值了。
    ==============
    我有的
    不过我没写出来
    我同时生成了ascx.cs文件现在知道了是id不准确
    不知道这个现在id是怎么来的
      

  10.   

    回复人:cpp2017(慕白兄) ( 五星(高级)) 信誉:100  2007-08-17 09:53:28  得分:0
    ==========
    这样有很多控件的话 会不会有点麻烦
    有没有其他方法
    可以知道它的后来id
      

  11.   

    try:
    <TD><INPUT id=TextBox2 name=TextBox2> </TD>
    <TD><INPUT id=Button1 onclick=modify(this) type=button value=修改> </TD> 
    --------------------
    加载:
    Control ctl = Page.LoadControl(strVisulPath);
    ctl.id="ctl1"; //赋id值
    DynamicControl.Controls.Add(ctl);赋值:
    TextBox tb= (TextBox)DynamicControl.FindControl("ctl1").FindControl("TextBox2");
    tb.Value = "test";
      

  12.   

    BearRui
    我来试试 哈 
      

  13.   

    BearRui
    可以了 哈
    给他赋个固定id确实是好做法 还有 慕白兄 谢谢啊

    你的做法肯定更规范
    记下了 多谢 各位