zoukankan      html  css  js  c++  java
  • 请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?

    答:
          foreach (System.Windows.Forms.Control control in this.Controls)
          {
           if (control is System.Windows.Forms.TextBox)
             {
                System.Windows.Forms.TextBox tb =          (System.Windows.Forms.TextBox)control ; 
                tb.Text = String.Empty ;
             }
          }

    上边的方法只是针对于桌面软件类的,如果要针对于web开发中怎么实现呢?

    首先.aspx文件一定会包含一个:<form id="form1" runat="server"> 只有在此标记中的代码享有和后台交换。

    由此:

    foreach(System.Web.UI.Control ctl in this.Form.Controls){
          Response.Write(ctl.ToString()+"<br />");
          if (ctl is System.Web.UI.WebControls.TextBox)
          {
                System.Web.UI.WebControls.TextBox tb = (System.Web.UI.WebControls.TextBox)ctl;
                tb.Text = string.Empty;
           }
    }

    此处需要注意的是:System.Web.UI.Control  表示:web界面上的所有的控件,包括html控件和服务器端控件。

    具体表现是:

    System.Web.UI.LiteralControl  此控件在页面上是:<label></label>
    System.Web.UI.HtmlControls.HtmlInputText  此控件在页面上是:<input type="text" />
    System.Web.UI.WebControls.Button  此控件是服务器端:<asp:Button ID="Button1" runat="server" />

    那么,如果我想限定只遍历服务器端的控件怎么办?

    foreach(System.Web.UI.WebControls.WebControl ctl in this.Form.Controls){

    问题就来了,因为this.Form.Controls 这个集合是包括html控件和服务器控件的,那么在遍历时,html控件转换不了服务器控件,就报错了:

    无法将类型为“System.Web.UI.LiteralControl”的对象强制转换为类型“System.Web.UI.WebControls.WebControl”。

    然而,this.Form 没有WebControl属性,也就无法区分开来。

    那么,如果我用this.Controls 或者 this.Page.Controls  那么结果又是如何呢?

    这样一来是获取整个页面的,那么他是不会包含页面控件的子控件的。

    输出结果是:

    System.Web.UI.HtmlControls.HtmlHead
    System.Web.UI.LiteralControl
    System.Web.UI.HtmlControls.HtmlForm

    所有,在遍历页面元素时,最好要知道元素块,同时获得的控件集也是评级的控件。(可以递归遍历全部控件:利用控件的HasControls属性)

    http://www.cnblogs.com/camnpr/archive/2011/10/12/2208818.html

  • 相关阅读:
    LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS
    Linux第二周学习总结——操作系统是如何工作的
    通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
    期末总结
    实验报告(实验五)
    HTTPServletResponse
    Eclipse 枚举类报错
    出现Unreachable code问题的原因
    myeclipse自动保存修改代码
    ssh连接虚拟机失败解决办法
  • 原文地址:https://www.cnblogs.com/OnlyDreams/p/2641668.html
Copyright © 2011-2022 走看看