如何在表中加载用户控件

时间:2013-03-28 11:49:03

标签: asp.net

我想每次按下按钮时将usercontrl添加到Table Control, 我在Click事件中完成了这个代码,我在第一次点击后获得了控制权,但在此之后 控件是disappers,可以建议解决方案吗? 感谢。

if (Session["tbl"] == null)
    {
        Session["tbl"] = Table1;
    }
    else
    {
        Table1 = (Table)Session["tbl"];
    }
    TimeSheetRow tr= LoadControl ("TimeSheetRow.ascx") as TimeSheetRow ;
    tr.ID = "tr" + Table1.Rows.Count;


Session.Add((Session.Count + 1).ToString(), tr);



    Table1.Rows.Add(new TableRow());
    Table1.Rows[Table1.Rows.Count -1].Cells.Add(new TableCell());
    Table1.Rows[Table1.Rows.Count - 1].Cells[0].Controls.Add(tr);


    Session["tbl"] = Table1;

1 个答案:

答案 0 :(得分:1)

无论何时动态地向控件集合添加控件,在回发时都必须将该控件重新添加到控件树中。因此,需要在页面init上重新添加所有旧用户控件。另外,我强烈建议不要使用session来存储对表行的引用;如果您将表行重新添加到表中,则viewstate将重新加载其中的数据。