2013-03-28 20 views
0

我想每次添加usercontrl到表控件我按下按鈕, 我已經在Click事件中完成此代碼,我在首次點擊中獲得了控制權,但在此之後控制器是消除器,任何建議的解決方案? 謝謝。如何在表中加載用戶控制

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

什麼目的劑量(Session.Add((Session.Count + 1).ToString(),tr);)服務於?哪裏是在頁面上添加table1的代碼。將它放在pre_init中,以使其視圖狀態在加載時可用 – Ratna

+0

表1在設計時添加,而不是通過代碼,每次Rows.count增加,但頁面沒有影響 –

+0

嘗試將此代碼放入load事件if(Session [「tbl」]!= null) { Table1 =(Table1)Session [「tbl」]; } – Ratna

回答

0

無論何時您向控件集合動態添加控件,回發時都必須將該控件重新添加到控件樹中。所以所有的舊用戶控件都需要在頁面init上重新添加。另外,我強烈建議不要使用會話來存儲對錶格行的引用;如果您將錶行重新添加到表中,viewstate將重新加載其中的數據。