请问如何遍历Repeater 中 Panel 中的TextBox?
谢谢大家!
呵呵

解决方案 »

  1.   

    for(int i=0;i<Repeater1.Item.Count;i++)
    {
       Panel p=(Panel)Repeater1.Item[i].FindControl("Panel的ID");
       TextBox tb=(TextBox)p.FindControl("TextBox的ID");   string str=tb.Text;//此处就可以获取到 Panel 中的TextBox的内容
    }或者
    for(int i=0;i<Repeater1.Item.Count;i++)
    {
       Panel p=
       TextBox tb=Repeater1.Item[i].FindControl("Panel的ID").FindControl("TextBox的ID") as TextBox;   string str=tb.Text;//此处就可以获取到 Panel 中的TextBox的内容
    }
      

  2.   

    foreach( RepeaterItem item in this.Repeater1.Items ) 
    {
    Panel p=item.FindControl("Panel1") as Panel; 
    TextBox txt=p.FindControl("TextBox1") as TextBox; 
    if(txt!=null){}
    }
      

  3.   

    我昏倒!!!!
    要清晰地意识到,如果这个时候不知道直接 Repeater1.Item[i].FindControl("TextBox的ID") 那么可能根本没有搞懂 FindControl 的机制。没有学到 FindControl 的机制,那么你可能既不知道知道什么时候必须使用中间层次的对象进行搜索,也不知道什么时候通过中间层次的对象进行搜索的多余的。
      

  4.   

    我在帖子 http://topic.csdn.net/u/20090412/22/63da66ba-aeb9-4254-a458-bcebf4df24a3.html 中有类似原理的回复(虽然问题并不完全相同)。
      

  5.   

    在看到楼主的问题“如何遍历Repeater 中 Panel 中的TextBox”之后,我的第一反应是打开 reflector 看看 Panel 到底有没有 INamingContainer 接口(因为我已经有近4年不做asp.net开发了,大多数东西都不确定了),看到它没有,我用1分钟做了一个程序实验,确定实际就是那样。