有关于在循环中,获得子控件的ID,并改变ID,不知道要怎么做?麻烦高手回答一下!
TextBox DD1 = (TextBox)DDJD.Rows[j].Cells[j].Controls[0];
以上这句话,是获得TextBox控件,但是我现在DD1的名字要可以改变的,因为这句话是在循环里获得的,如果DD1不能被改变,那就会出错,不知道有什么好办法,可以在获得控件的时候改边控件的ID
这段就是具体代码,请大家研究一下
HtmlTable[] ht = {DDJD,FSJD,BHJD,TXJD,ZDHJD};
for(int i=0;i <ht.Length;i++)
{
HtmlTable Name = (HtmlTable)ht[i];
TextBox[] tb = {};
for(int j=1;j <Name.Rows.Count;j++)
{
string OrgName = Name.ID.Substring(0,Name.ID.Length-2).Trim();
switch(OrgName)
{
case "DD ":
{
if(i == 0)
{
tb[j] = "DD "+j;
}
break;
}
case "FS ":
{
if(i == 1)
{
tb[j+i] = "FS "+j;
}
break;
}
case "BH ":
{
if(i == 2)
{
tb[j+i] = "BH "+j;
}
break;
}
case "TX ":
{
if(i == 3)
{
tb[j+i] = "TX "+j;
}
break;
}
default:
{
if(i == 4)
{
tb[j+i] = (TextBox) "ZDH "+j;
}
break;
}
}
}
------解决方案--------------------HtmlTable[] ht = {DDJD,FSJD,BHJD,TXJD,ZDHJD};
TextBox tb = null;
for(int i=0;i <ht.Length;i++)
{
HtmlTable Name = (HtmlTable)ht[i];
for(int j=1;j <Name.Rows.Count;j++)
{
string OrgName = Name.ID.Substring(0,Name.ID.Length-2).Trim();
switch(OrgName)
{
case "DD ":
tb = (TextBox)Name.Rows[j].Cells[列号].Controls[0];
if(i == 0)
tb.ID = "DD "+j.ToString();
break;
............
------解决方案--------------------又丑又长的代码....
tb[X] 的类型是TextBox,怎么可能赋值一个string,真晕.
楼主为什么要改变控件的ID? 为什么简单的不做?
另外你说的是改控件的ID,而你的代码看来你要改的不是控件的ID而是变量名.....请楼主准确再次表达一下你到底最终需要的是什么????
如果是要在循环里面去读取一批分别叫 DD1,DD2,DD3....的不确定控件,可以用
父控件.FindControl( "DD "+ i.ToString()) 得到;
如果是要在循环内遍历一批确定的控件 DD1,DD2,DD3.... 则直接把它们赋值给数组就行了
如果都不是,你最好重新表达你的要求.