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

动态创建表格的问题 无论我输入什么数字都是一样的结果

protected void Button1_Click(object sender, EventArgs e)
    {
        int r=Convert.ToInt32(TextBox1.Text);
        int c=Convert.ToInt32(TextBox2.Text);

        HtmlTable tb = new HtmlTable();
        tb.Border = 2;
        tb.BorderColor = "blue";
        tb.CellPadding = 2;
        tb.CellSpacing = 3;
        tb.Width = "50%";
        HtmlTableRow row = new HtmlTableRow();
        HtmlTableCell cell = new HtmlTableCell();

        for (int r1 = 0; r1 < r; r1++)
        {
            for (int c1 = 0; c1 < c; c1++)
                //cell.Controls.Add(new LiteralControl(" 1"));
            row.Cells.Add(cell);

        }

        tb.Rows.Add(row);
        this.Controls.Add(tb);
      

        
    }
} --------------------编程问答--------------------

 for (int r1 = 0; r1 < r; r1++) 
        { 
            for (int c1 = 0; c1 < c; c1++) {
                //cell.Controls.Add(new LiteralControl(" 1")); 
            row.Cells.Add(cell); 
            }
          tb.Rows.Add(row); 

        } 

                this.Controls.Add(tb); 

--------------------编程问答-------------------- 把tb.Rows.Add(row);  上移到循环里面。 --------------------编程问答-------------------- 刚才我试了,还是不行,只是一行,循环没问题,比如我输入一个3 一个4 出现12个1  --------------------编程问答-------------------- 把 HtmlTableCell cell = new HtmlTableCell(); 
移到第二个FOR的前面,第一个FOR后面 --------------------编程问答-------------------- 上面说错了,应该是这样:


        
        for (int r1 = 0; r1 < r; r1++) 
        { 
             HtmlTableRow row = new HtmlTableRow(); 
            for (int c1 = 0; c1 < c; c1++) {
               HtmlTableCell cell = new HtmlTableCell(); 

                //cell.Controls.Add(new LiteralControl(" 1")); 
                row.Cells.Add(cell); 
             }
            tb.Rows.Add(row); 
 
        } 

     this.Controls.Add(tb); 

--------------------编程问答-------------------- 你一直在用同一个row和cell,当然出来的是一个了阿。。。。
改下就行了

HtmlTable tb = new HtmlTable(); 
        
        
        for (int r1 = 0; r1 < r; r1++) 
        { 
HtmlTableRow row = new HtmlTableRow(); 
            for (int c1 = 0; c1 < c; c1++) 
{
HtmlTableCell cell = new HtmlTableCell(); 
                //cell.Controls.Add(new LiteralControl(" 1")); 
            row.Cells.Add(cell); 
}
tb.Rows.Add(row); 


        } 

                this.Controls.Add(tb); 
--------------------编程问答-------------------- 如果还不行的话

HtmlTable tb = new HtmlTable(); 
HtmlTableRow[] rows = new HtmlTableRow[r];
for (int r1 = 0; r1 < r; r1++) 

HtmlTableRow row = new HtmlTableRow(); 
HtmlTableCell[] cells = new HtmlTableCell[c]; 
for (int c1 = 0; c1 < c; c1++) 

HtmlTableCell cell = new HtmlTableCell(); 
cells[c1] = cell;

row.Cells.AddRange(cells);
rows[r1] = row;


tb.Rows.AddRange(rows);
this.Controls.Add(tb);  --------------------编程问答--------------------
引用 5 楼 kyoybs 的回复:
上面说错了,应该是这样:
C# codefor (int r1=0; r1< r; r1++) 
        { 
             HtmlTableRow row=new HtmlTableRow();for (int c1=0; c1< c; c1++) {
               HtmlTableCell cell=new HtmlTableCell();//cell.Controls.Add(new LiteralControl(" 1"));                row.Cells.Add(cell); 
             }
            tb.Rows.Add(row); 
 
        }this.Controls.Add(tb);
up --------------------编程问答-------------------- 请问下你for循环的时候 new对象吗? 这样是始终是一行一列 --------------------编程问答-------------------- protected void Button1_Click(object sender, EventArgs e) 
    { 
        int r=Convert.ToInt32(TextBox1.Text); 
        int c=Convert.ToInt32(TextBox2.Text); 

        HtmlTable tb = new HtmlTable(); 
        tb.Border = 2; 
        tb.BorderColor = "blue"; 
        tb.CellPadding = 2; 
        tb.CellSpacing = 3; 
        tb.Width = "50%"; 
        HtmlTableRow row = null;
        HtmlTableCell cell = null;

        for (int r1 = 0; r1 < r; r1++) 
        { 
            row=new HtmlTableRow(); 
            for (int c1 = 0; c1 < c; c1++) 
            {
                cell=new HtmlTableCell(); 
                cell.Controls.Add(new LiteralControl(" 1")); 
                row.Cells.Add(cell); 
            }
            tb.Rows.Add(row); 
        } 

         this.Controls.Add(tb); 
      

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