我想每次按下按钮时将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;
答案 0 :(得分:1)
无论何时动态地向控件集合添加控件,在回发时都必须将该控件重新添加到控件树中。因此,需要在页面init上重新添加所有旧用户控件。另外,我强烈建议不要使用session来存储对表行的引用;如果您将表行重新添加到表中,则viewstate将重新加载其中的数据。