protected System.Web.UI.HtmlControls.HtmlTableCell td1;
protected System.Web.UI.HtmlControls.HtmlTable table1;

private void Page_Load(object sender, System.EventArgs e)
{
td1.Controls.Add(GenTable());
}private Table GenTable()
{
Table table = new Table();
TableRow row;
TableCell cell;
CheckBox box; for (Int32 i = 0; i < 10; i ++)
{
row = new TableRow(); for (Int32 j = 0; j < 3; j ++)
{
cell = new TableCell();
box = new CheckBox(); cell.Controls.Add(box);
row.Controls.Add(cell);
} table.Controls.Add(row);
} return table;
}

解决方案 »

  1.   

    private int intAddRows = 0;

    private void Page_Load(object sender, System.EventArgs e)
    {
        if (ViewState["intAddRows"] != null)

        intAddRows = (int)ViewState["intAddRows"];
                       } // 在此调用增加行函数或语句
    for(int i=0 ; i < intAddRows;i++)
    {

    } }



    private void Button1_Click(object sender, System.EventArgs e)
    {

                    intAddRows ++;
                    ViewState["intAddRows"] = intAddRows;
              }用以上代码可以实现新增行并在页面刷新时行不会消失,但存在的一个问题就是,第一次单击按钮时并不新增行,要第二次单击按钮时才会新增行,要怎么改进?
      

  2.   

    要给intAddRows变量付一个初始值。就象上面说的
      

  3.   

    每次添加动态控件时把该控件保存在session里面,在page_load事件中把session里面的值填充到页面中来
      

  4.   

    这是Table的,做参考~··
    动态添加的控件在postback之后就没有了,所以用视图来解决这个问题,连续加载两次页面
    private void Page_Load(object sender, System.EventArgs e)
    {
        if(!Page.IsPostBack)
        {
              if(this.DynicTableRow != true) 
    {
                  this.Bind_Row(); //动态添加语句
                  this.DynicTableRow = true; //设定为true
         this.Page_Load(sender,e); //重新加载页面
    }
        }
    }//下面进行视图设定
    private bool DynicTableRow
    {
             get
      {
    object sig = ViewState["Table_FX"];
    return (sig == null)? false : true;

    set
    {
    ViewState["Table_FX"] = value;
    }
    }//重载加载viewstate
    protected override void LoadViewState(object savedState)
    {
    base.LoadViewState (savedState);
    if(this.DynicTableRow)
    {
    this.Bind_Row();
    }
    }
    //这样就可以保持住动态添加的控件,连Bind_Row时动态添加控件的初始值都可以保持下来
      

  5.   

    把你写的画表的程序定义一个方法例如:void init(){}然后把这个方法写道pageload里面不久ok了