输入数字动态创建行

网友留言“请问 我想做一个这效果,当我输入数字的时候,它动态的创建行数,是怎么样实现!”,原问题来自http://www.cnblogs.com/insus/archive/2011/11/17/2252372.html#2256524

 

时间关系,一直没得闲下来及时帮上他的忙,现把实现过程帖出来。另外网友的提供的问题过于简单,也不一定能真正符合他的要求。首先看看效果。

 

Insus.NET把动态产生表格,写在一个UserControl用户控件,把它拉到页面上去即可。

ExpandedBlockStart.gif View Code
  protected  void ButtonSetup_Click( object sender, EventArgs e)
    {
         if ( string.IsNullOrWhiteSpace( this.TextBox1.Text))  return;

         try
        {
             this.TableUploadlayout.Visible =  true;
            GenerateTable(Convert.ToInt32( this.TextBox1.Text.Trim()));

        }
         catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
    }

     private  void GenerateTable( int rows)
    {
         int tableRows = rows;   // 接收用户设置行数
         int tableCells =  4;   // 4列
         int tbId =  1// 由于一行有多个Textbox,要设置每个TextBox的ID唯一性。

         for ( int i =  1; i <= tableRows; i++)
        {
            TableRow tableRow =  new TableRow();
             for ( int j =  1; j <= tableCells; j++)
            {
                 switch (j)
                {
                     case  1:   // 第一列
                        TableCell tableCell1 =  new TableCell();
                        tableCell1.BorderWidth = Unit.Pixel( 1);
                        FileUpload fileUpload =  new FileUpload();
                        fileUpload.ClientIDMode = ClientIDMode.Static;
                        fileUpload.ID =  " FileUpload " + i.ToString(); 
                        tableCell1.Controls.Add(fileUpload);
                        tableRow.Cells.Add(tableCell1);
                         break;
                     case  2// 第二列
                        TableCell tableCell2 =  new TableCell();
                        tableCell2.BorderWidth = Unit.Pixel( 1);
                        TextBox textBox1 =  new TextBox();
                        textBox1.ClientIDMode = ClientIDMode.Static;
                        textBox1.ID =  " TextBox " + tbId.ToString();
                        tbId = tbId +  1;
                        tableCell2.Controls.Add(textBox1);
                        tableRow.Cells.Add(tableCell2);
                         break;
                     case  3// 第三列
                        TableCell tableCell3 =  new TableCell();
                        tableCell3.BorderWidth = Unit.Pixel( 1);
                        TextBox textBox2 =  new TextBox();
                        textBox2.ClientIDMode = ClientIDMode.Static;
                        textBox2.ID =  " TextBox " + tbId.ToString();
                        tbId = tbId +  1;
                        tableCell3.Controls.Add(textBox2);
                        tableRow.Cells.Add(tableCell3);
                         break;
                     case  4// 第四列
                        TableCell tableCell4 =  new TableCell();
                        tableCell4.BorderWidth = Unit.Pixel( 1);
                        DropDownList dropDownList =  new DropDownList();
                        dropDownList.ClientIDMode = ClientIDMode.Static;
                        dropDownList.ID =  " DropDownList " + i.ToString();
                        dropDownList.DataSource = PhotoAlbum();
                        dropDownList.DataBind();
                        tableCell4.Controls.Add(dropDownList);
                        tableRow.Cells.Add(tableCell4);
                         break;
                }
            }

            TableUploadlayout.Rows.Add(tableRow);
        }
    }

     private List< string> PhotoAlbum()
    {
        List< string> pa =  new List< string>();
        pa.Add( " 长城 ");
        pa.Add( " 北京 ");
        pa.Add( " 桂林 ");
         return pa;
    }

 

其实第二列与第三列写为一个case:

ExpandedBlockStart.gif View Code
  case  2// 第二列                        
  case  3// 第三列
      TableCell tableCell =  new TableCell();
      tableCell.BorderWidth = Unit.Pixel( 1);
      TextBox textBox =  new TextBox();
      textBox.ClientIDMode = ClientIDMode.Static;
      textBox.ID =  " TextBox " + tbId.ToString();
      tbId = tbId +  1;
      tableCell.Controls.Add(textBox);
      tableRow.Cells.Add(tableCell);
       break;

 

源代码打包在下链接,可以下载来看即可。

http://download.cnblogs.com/insus/ASPDOTNET/DymanicallyGenerateMulitRows.rar


  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值