<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    
  
    protected void Button1_Click(object sender, EventArgs e)
    {
        InsertC();//执行添加控件方法
    }
       private void SFUPC()//该方法用于保存当前页面上传文件控件集到缓存中
    {        ArrayList AL = new ArrayList();//创建动态增加数组
        foreach (Control C in F.Controls)
        {
            if (C.GetType().ToString() == "System.Web.UI.HtmlControls.HtmlTableRow")
            {
                HtmlTableCell HTC = (HtmlTableCell)C.Controls[0];
                foreach (Control FUC in HTC.Controls)
                {                    if (FUC.GetType().ToString() == "System.Web.UI.WebControls.TextBox")
                    {
                        TextBox FU = (TextBox)FUC;
                        AL.Add(FU);
                    }
                    
                 
                   
                }               
            }
        }
        Session.Add("FilesControls", AL);
    }
    private void InsertC()//该方法用于添加一个上传文件的控件
    {
        ArrayList AL = new ArrayList();
        this.F.Rows.Clear();
        GetInfo();
        HtmlTableRow HTR = new HtmlTableRow();        
                HtmlTableCell HTC1 = new HtmlTableCell();
        HTC1.Controls.Add(new TextBox());
        HTR.Controls.Add(HTC1);
        //HtmlTableCell HTC2 = new HtmlTableCell();
        //HTC2.Controls.Add(new TextBox());
        //HTR.Controls.Add(HTC2);        //HtmlTableCell HTC3 = new HtmlTableCell();
        //HTC3.Controls.Add(new TextBox());
        //HTR.Controls.Add(HTC3);        //HtmlTableCell HTC4 = new HtmlTableCell();
        //HTC4.Controls.Add(new TextBox());
        //HTR.Controls.Add(HTC4);        F.Rows.Add(HTR);
        SFUPC();
    }
    private void GetInfo()//该方法用于读取缓存中存储的上传文件控件集
    {
        ArrayList AL = new ArrayList();
        if (Session["FilesControls"] != null)
        {
            AL = (System.Collections.ArrayList)Session["FilesControls"];
            for (int i = 0; i < AL.Count; i++)
            {
                HtmlTableRow HTR = new HtmlTableRow();
                
                HtmlTableCell HTC1 = new HtmlTableCell();
                HTC1.Controls.Add((System.Web.UI.WebControls.TextBox)AL[i]);
                HTR.Controls.Add(HTC1);                //HtmlTableCell HTC2 = new HtmlTableCell();
                //HTC2.Controls.Add((System.Web.UI.WebControls.TextBox)AL[i]);
                //HTR.Controls.Add(HTC2);                //HtmlTableCell HTC3 = new HtmlTableCell();
                //HTC3.Controls.Add((System.Web.UI.WebControls.TextBox)AL[i]);
                //HTR.Controls.Add(HTC3);                //HtmlTableCell HTC4 = new HtmlTableCell();
                //HTC4.Controls.Add((System.Web.UI.WebControls.TextBox)AL[i]);
                //HTR.Controls.Add(HTC4);
                
                F.Rows.Add(HTR);
            }
        }
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
动态增加表格的行,我可以增加行,但是增加的行只有1列,如何增加的是多列?如果把注释去掉是我做的,好象不行,不知道谁可以帮忙改一下?

解决方案 »

  1.   

    InsertC()方法里你注掉的那些不就是添加多列?
      

  2.   


    private void GetInfo()//该方法用于读取缓存中存储的上传文件控件集
        {
            ArrayList AL = new ArrayList();
            if (Session["FilesControls"] != null)
            {
                AL = (System.Collections.ArrayList)Session["FilesControls"];
                for (int i = 0; i < AL.Count; i++)
                {
                    HtmlTableRow HTR = new HtmlTableRow();
                    
                    HtmlTableCell HTC1 = new HtmlTableCell();
                    HTC1.Controls.Add((System.Web.UI.WebControls.TextBox)AL[i]);
                    HTR.Controls.Add(HTC1);
                    //重新实例化一个 控件 试下
                    HtmlTableCell HTC2 = new HtmlTableCell();
                    System.Web.UI.WebControls.TextBox newtxtbox=(System.Web.UI.WebControls.TextBox)AL[i];
                    HTC2.Controls.Add( newtxtbox );
                    HTR.Controls.Add(HTC2);
     
                    //HtmlTableCell HTC3 = new HtmlTableCell();
                    //HTC3.Controls.Add((System.Web.UI.WebControls.TextBox)AL[i]);
                    //HTR.Controls.Add(HTC3);                //HtmlTableCell HTC4 = new HtmlTableCell();
                    //HTC4.Controls.Add((System.Web.UI.WebControls.TextBox)AL[i]);
                    //HTR.Controls.Add(HTC4);
                    
                    F.Rows.Add(HTR);
                }
            }
        }
      

  3.   

                for (int i = 0; i < AL.Count; i++)
                {
                    HtmlTableRow HTR = new HtmlTableRow();
                    
                    HtmlTableCell HTC1 = new HtmlTableCell();
                    HTC1.Controls.Add((System.Web.UI.WebControls.TextBox)AL[i]);
                    HTR.Controls.Add(HTC1);                HtmlTableCell HTC2 = new HtmlTableCell();
                    HTC2.Controls.Add((System.Web.UI.WebControls.TextBox)AL[i+1]);
                    HTR.Controls.Add(HTC2);                HtmlTableCell HTC3 = new HtmlTableCell();
                    HTC3.Controls.Add((System.Web.UI.WebControls.TextBox)AL[i+2]);
                    HTR.Controls.Add(HTC3);                HtmlTableCell HTC4 = new HtmlTableCell();
                    HTC4.Controls.Add((System.Web.UI.WebControls.TextBox)AL[i+3]);
                    HTR.Controls.Add(HTC4);
                    
                    F.Rows.Add(HTR);
                }
      

  4.   

    http://blog.csdn.net/xianfajushi/archive/2009/07/22/4371397.aspx
      

  5.   


    http://hiphotos.baidu.com/gxr19800108/pic/item/e6f5dbd9d407321d10df9b4f.jpg先前的只能保存一列,不能保存多列,请看图,懂我的意思了吧?