现在有如下例子:
protected System.Web.UI.WebControls.TextBox TextBox3;
protected System.Web.UI.WebControls.TextBox TextBox2;
protected System.Web.UI.WebControls.TextBox TextBox1;
...
很多的TextBox控件
我想实现“控件循环赋值或取值”
也就是说
string a1=TextBox1.Text;
string a2=TextBox2.Text;
string a3=TextBox3.Text;
...
但是使用循环的方式赋值或取值
for(int i=1;...)
{
string "a"+i="TextBox"+i.Text;//类似这个意思,但这种写法不对
}
请问如何作呢?

解决方案 »

  1.   

    <input type="text" name="txt1" id="txt1" />
    <input type="text" name="txt2" id="txt2" />
    ..
    <input type="text" name="txt100" id="txt100" />後台取值
    string[] txts = new string[100];
    for(int i=1; i<=100; i++)
    {
     txts[i] = Request.Form["txt" + i.ToString()];
    }
    賦值也采用客戶端for(var i=1; i<100; i++)
    {
     document.all("txt" + i).value = "指定值";
    }
      

  2.   

    这里的控件是.NET控件呀,protected System.Web.UI.WebControls.TextBox
    不是Html控件呀,
    要实现对.net控件的循环
      

  3.   

    就是控件那边如何用循环的方式表示,并且他还是一个能取自身值的控件
    数组好像不行,不知道怎么将字符串转换成TextBox控件类型
      

  4.   

    以下的方法,所说我不赞成,但是可以实现你的要求:
    TextBox[] txtBox = new TextBox[2];
    txtBox[0] = textBox1;
    txtBox[1] = textBox2;
    for( int i=0; i<2; i++ )
    {
    txtBox[i].Text = i.ToString();
    }
      

  5.   

    还有一个方法,你可以运用轮询界面元素的方法,你给你的textbox命名加上前缀,然后通过分析界面元素名称的方法就可以按你的要求赋值了,而且此方法重用的机会很多