当前位置:编程学习 > C#/ASP.NET >>

C# 如何让所有的textbox一起置零啊

就是弄个置零的按钮,点一下,然后所有的textbox一起归零 --------------------编程问答-------------------- 拖一个按钮,在这个按钮的click事件里面,将所有的textbox的text属性设置为“”
是这个意思不? --------------------编程问答-------------------- 嗯,就是这个意思,要是一句句的写蛮麻烦 能不能用个循环什么的一起置零啊,控件蛮多~ --------------------编程问答--------------------


//这里页面所有textbox清空的方法
function SetTextBox()
{
 var txts = document.getElementsByTagName('INPUT');
 for(var i = 0; i < txts.length; i++)
 {
  if (txts[i].type.toUpperCase() == 'TEXT')
  {
     txts[i].value = "";
  }
 }

}

//按钮的onclick="SetTextBox()"
//如果是服务器按钮 OnClientClick="SetTextBox()"



--------------------编程问答-------------------- 可以拉一个<input />onclick事件调用一个JavaScript
用JavaScript遍历页面上的TextBox设置其值为:0 --------------------编程问答--------------------

LZ... 方法就是我3楼给你的。。手写的。。有小错见谅。。



PS:你记得要结帖啊。。你看你那结帖率。。惨不忍睹啊。。 --------------------编程问答--------------------
foreach (var i in Controls)
{
    TextBox tb = i as TextBox;
    if (tb != null) tb.Text = "0";
}
--------------------编程问答--------------------


foreach (Control aa in Page.Controls)
        {
            if (aa is TextBox )
            {
                TextBox tb = (TextBox )aa;
                tb.Text = "";
              }
        }

--------------------编程问答-------------------- 递归

        public static void ResetTextBox(Control control)
        {
            if (control.HasChildren)
            {
                foreach (Control subControl in control.Controls)
                {
                    if (subControl is TextBox)
                        (subControl as TextBox).Text = string.Empty;
                    else
                        ResetTextBox(subControl);
                }
            }            
        }
--------------------编程问答-------------------- 遍历页面控件 设置文本为0 --------------------编程问答--------------------
引用 6 楼 caozhy 的回复:
C# code
foreach (var i in Controls)
{
    TextBox tb = i as TextBox;
    if (tb != null) tb.Text = "0";
}

++ --------------------编程问答--------------------
引用 7 楼 fengyarongaa 的回复:
C# code


foreach (Control aa in Page.Controls)
        {
            if (aa is TextBox )
            {
                TextBox tb = (TextBox )aa;
                tb.Text = "";
              ……

3ku啦。本人初学好多问题不懂,谢谢各位大哥的指导~ --------------------编程问答-------------------- 我弱弱的问一句,怎么结贴啊,就点一下那个结贴就ok? --------------------编程问答-------------------- 问题问的不够详细,也没说是winform还是WPF程序,还是asp.net.还搞了个怎么结贴,哥们好无语。。。。。 --------------------编程问答--------------------
引用 7 楼 fengyarongaa 的回复:
C# code


foreach (Control aa in Page.Controls)
        {
            if (aa is TextBox )
            {
                TextBox tb = (TextBox )aa;
                tb.Text = "";
              ……
顶! --------------------编程问答-------------------- 用遍历吧   将所有的textbox的值都="" --------------------编程问答-------------------- 后台就遍历 Controls
js就document.getElementByTagName() --------------------编程问答-------------------- 就遍历控件嘛 --------------------编程问答-------------------- 呵呵,遍历! --------------------编程问答--------------------
引用 16 楼 kingdom_0 的回复:
后台就遍历 Controls
js就document.getElementByTagName()

++ --------------------编程问答-------------------- public static void clear(Control.ControlCollection  cs)
        {
            foreach (Control c in cs)
            {
                if (c is TextBox)
                {
                    c.Text = "";
                }
             }
        } --------------------编程问答-------------------- 这个蛮简单的...楼上的老大们的方法都不错.......顶下 --------------------编程问答--------------------
引用 8 楼 dongxinxi 的回复:
递归

C# code

        public static void ResetTextBox(Control control)
        {
            if (control.HasChildren)
            {
                foreach (Control subControl in control.Contro……

+1 循环遍历 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 8 楼 dongxinxi 的回复:
递归
C# code

        public static void ResetTextBox(Control control)
        {
            if (control.HasChildren)
            {
                foreach (Control subControl in control.Controls)
  ……


这个不是递归吧,如果subcontrol的control的control里还有textbox呢? --------------------编程问答-------------------- 看错了,是递归 --------------------编程问答-------------------- --------------------编程问答-------------------- 遍历遍历!! --------------------编程问答--------------------
引用 8 楼 dongxinxi 的回复:
递归
C# code

        public static void ResetTextBox(Control control)
        {
            if (control.HasChildren)
            {
                foreach (Control subControl in control.Controls)
  ……
这个可以。 --------------------编程问答-------------------- 这个就是遍力呀,没什么好说的,置为0 --------------------编程问答--------------------

foreach(Control c in this.Controls)
{
     if(c is TextBox)
     {
         (c as TextBox).Text = "0";
     }   
}
--------------------编程问答-------------------- 结贴率0.00%??? --------------------编程问答--------------------    protected void SetEmpty()
        {
            try
            {
                foreach (Control ctrl in pnlIn.Controls)
                {
                    Label lable = new Label();
                    if (ctrl.GetType() != lable.GetType())
                    {
                        ctrl.Text = 0;
                    }
                }
            }               
        } --------------------编程问答-------------------- $("input[type='text']").val(""); --------------------编程问答--------------------
引用 8 楼 dongxinxi 的回复:
递归

C# code

        public static void ResetTextBox(Control control)
        {
            if (control.HasChildren)
            {
                foreach (Control subControl in control.Contro……

递归不好!层太多效率低,易崩溃! --------------------编程问答-------------------- 如果是web的话,加一个 input type = "reset" --------------------编程问答-------------------- 可以用扩展控件的方法 --------------------编程问答-------------------- --------------------编程问答-------------------- 学习了,好像面试看到过这题 --------------------编程问答--------------------

foreach(Control c in this.Controls)
{
     if(c is TextBox)
     {
         (c as TextBox).Text = "0";
     }   
}
除了这个还可以用容器,当然窗体也是个容器.方法多了
--------------------编程问答-------------------- 人家才发了两张帖而已......而且不会结帖,这个才是关键........

LZ点结帖,然后把分分配给你想给的人,再点确认结帖就行了 --------------------编程问答-------------------- 有控件容器类吧  foreach 一下应该开一吧 --------------------编程问答-------------------- 學習了. --------------------编程问答-------------------- 学习啦!!! --------------------编程问答-------------------- 遍历窗体中所有的butoon控件,楼上的都讲完了。。。 --------------------编程问答-------------------- 来学习来学习、 --------------------编程问答-------------------- 学习 学习。。。 --------------------编程问答-------------------- private void button1_Click(object sender, EventArgs e)
        {
            
            foreach (object item in this.Controls)
            {
                if (item is TextBox)
                {
                    TextBox tt = item as TextBox;
                    tt.Text = "";
                }
                else
                {
                    continue;
                }
            }
        }

我这个方法比较简单,已经试过, 我是新手,勿笑. --------------------编程问答-------------------- 可以把所有textbox引用到一个数组里然后foreach循环清空把? --------------------编程问答-------------------- 后台就遍历 Controls --------------------编程问答-------------------- 6-7楼方法不错 --------------------编程问答--------------------
引用 5 楼 porschev 的回复:
LZ... 方法就是我3楼给你的。。手写的。。有小错见谅。。



PS:你记得要结帖啊。。你看你那结帖率。。惨不忍睹啊。。


人家总共才发两贴,有什么惨不忍睹的。 --------------------编程问答-------------------- 最简单的:如果是web的话,加一个 input type = "reset" --------------------编程问答-------------------- 每天回帖 --------------------编程问答-------------------- 我上面所有用 foreach的 +++++ --------------------编程问答-------------------- 这个用脚本做把速度比较快       用JS或者JQuery遍历文本   赋值为""
$(":input").foreach(function(i){
    $(this).val("");
}); --------------------编程问答-------------------- 方法太多了,上面举出了用JS的方法,和c#控件遍历的方法 --------------------编程问答-------------------- 如果是WinForm,那么就遍历一下窗体所有的控件
如果是textBox就把它置为空或者为0,就OK了

--------------------编程问答--------------------
引用 6 楼 caozhy 的回复:
C# code
foreach (var i in Controls)
{
    TextBox tb = i as TextBox;
    if (tb != null) tb.Text = "0";
}

+1

这个很好地用到了AS,避免了强制转换的一些弊端。
不但完成任务,安全性也很好。赞一个!! --------------------编程问答-------------------- 学习~ --------------------编程问答--------------------
引用 34 楼 feisha102 的回复:
引用 8 楼 dongxinxi 的回复:
递归

C# code

public static void ResetTextBox(Control control)
{
if (control.HasChildren)
{
foreach (Control subControl in control.Contro……

递归不好!层太多效率低,易崩溃!


///声明:本人新手一名。。。
///本人测试代码

 protected void Button1_Click(object sender, EventArgs e)
    {
        foreach(Control aa in Page.Controls )
            if (aa is TextBox)
            {  
                TextBox tb = (TextBox)aa; 
                tb.Text= " ";
            }
    }

怎么点击Button1  没反应 求解。。。。谢谢大虾们。。 --------------------编程问答--------------------
引用 7 楼 fengyarongaa 的回复:
C# code


foreach (Control aa in Page.Controls)
        {
            if (aa is TextBox )
            {
                TextBox tb = (TextBox )aa;
                tb.Text = "";
              ……



不好意思刚引用错了。。。 --------------------编程问答-------------------- 我从网上找到了一个例子,绝对适合LZ
遍历页面上所有的TextBox控件并将其设置为空值 --------------------编程问答-------------------- 学习。。。 --------------------编程问答--------------------
引用 12 楼 longshaofeiyan 的回复:
我弱弱的问一句,怎么结贴啊,就点一下那个结贴就ok?

顶部点一下那个结贴,然后在你想给分的帖上输入分数,可输入一个贴或多个,在底部按结贴! --------------------编程问答-------------------- 方法都不错~ --------------------编程问答--------------------
引用 8 楼 dongxinxi 的回复:
递归

C# code

        public static void ResetTextBox(Control control)
        {
            if (control.HasChildren)
            {
                foreach (Control subControl in control.Contro……


这个才是王道 --------------------编程问答-------------------- 人多力量大啊 --------------------编程问答-------------------- 用foreach的注意,最好习惯吧它看成只读迭代 --------------------编程问答-------------------- --------------------编程问答-------------------- textbox.text="0"; --------------------编程问答--------------------
引用 8 楼 dongxinxi 的回复:
递归

C# code

        public static void ResetTextBox(Control control)
        {
            if (control.HasChildren)
            {
                foreach (Control subControl in control.Contro……

顶递归!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,