遍历页面上所有TextBox控件并给它赋值为string.Empty?

请编程遍历页面上所有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.camnpr.com/articles/?type=detail&id=464

转载于:https://www.cnblogs.com/camnpr/archive/2011/10/12/2208818.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值