A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵刘滨 中级黑马   /  2012-8-5 20:03  /  2132 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何清空页面上的textbox控件的值?(请写详细一点)

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

5 个回复

倒序浏览
foreach   (Control   txt   in   this.Controls[1].Controls)
{
if   (txt   is   System.Web.UI.WebControls.TextBox)
{
((TextBox)txt).Text= " ";
}
}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
textBox.text="";

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
TextBox.Text="";就是把TextBox的Text复制为空不就可以了吗?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
赵令 发表于 2012-8-5 20:52
foreach   (Control   txt   in   this.Controls[1].Controls)
{
if   (txt   is   System.Web.UI.WebCon ...

你这种方式我试了,但是System.Web.UI.WebControls.TextBox这句话弄不出来,显示错误的。
回复 使用道具 举报

for循环来实现清空TestBox1的值

方法1:如果你的10个TestBox都在同一个容器里(暂定是panel1),同时假定TestBox1~10都是TextBox,这样写:
foreach (Control c in panel1.Controls)
                if (c is TextBox)
                    for (int i = 1; i <= 10; i++)
                        if (c.Name == "testBox" + i.ToString())
                            (c as TextBox).Clear();
就是先遍历容器里所有control,找出所有TextBox,如果他的Name为TestBox1~10就清除文本。
还可以再简洁一些,直接从Name下截取最后的数字
foreach (Control c in panel1.Controls)
        if (c is TextBox && int.Parse(TestBox1.Name.Substring(7)) >= 1 && int.Parse(TestBox1.Name.Substring(7)) <= 10)
                (c as TextBox).Clear();

方法2:假设这些TestBox分散在好多容器里(同样假设TestBox都是TextBox控件),建议这样:把它们都加入到一个列表中(就是List<TextBox>),这样你随时可以遍历列表清除所有列表内成员的文本。
List<TextBox> testBoxList=new List<TextBox>();
testBoxList.Add(TestBox1);
testBoxList.Add(TestBox3);
……
要清除时:
foreach (TextBox tb in testBoxList)
       tb.Clear();
这样看起码麻烦,实际上有个好处:你可以用List<Control>列表来维护多种控件,TextBox/Panel/Button等都可以丢进去,需要清除Text属性时遍历即可。



评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马