除了FindControl还有其他方法获得控件吗?在js里有getElementsByTagName或者getElementsByName可以获得一组控件,.net有类似的方法么?问这个问题主要是想获得一个页面的form窗体(在任意窗体名的情况下)

解决方案 »

  1.   

    aspx:<HTML>
    <HEAD>
    <title></title>
    <meta http-equiv="Pragma" content="no-cache">
    </HEAD>
    <body>
    <form id="Form1" method="post" runat=server>
    </form>
    </body>
    </HTML>
    cs:
    Response.Write(this.Controls[1].UniqueID);
      

  2.   

    谢谢楼上,不过一般用数字是没什么问题的,但是如果在form前加一个<div id=a runat=server></div>就不对了,唯一的办法是枚举controls,但是这样好象效率不高PS:奇怪controls[0]是什么元素啊
      

  3.   

    0:System.Web.UI.ResourceBasedLiteralControl
    1:System.Web.UI.HtmlControls.HtmlForm
    2:System.Web.UI.LiteralControl
      

  4.   

    foreach(Control col in Controls)
    {
        if(col is HtmlForm)
    {
    Response.Write(col.UniqueID);
    break;
    }
    }
      

  5.   

    string allTextBoxValues = "";
       foreach (Control c in Page.Controls)
       {
          foreach (Control childc in c.Controls)
          {
             if (childc is TextBox)
             {    
                allTextBoxValues += ((TextBox)childc).Text + ",";
             }
          }
       }
       if(allTextBoxValues != "")
       {
          Label1.Text = allTextBoxValues;
       }
      

  6.   

    想通了,似乎只有枚举了,form总是在开始几个控件,不会存在效率问题,呵呵,.net咋不提供DOM呢