2012-01-27 41 views
0

我遇到了C#ASP.NET表單的問題。表單的目的是從數據庫加載一些鍵/值對,以允許用戶查看,編輯或刪除它們。ASP.NET - 動態行和Page_Load

Key/Value對是在Page_Load事件中動態生成的,當頁面首次打開時,一切正常。下面是一些示例代碼(從原來的下調)

TableRow row = new TableRow(); 
TableCell cell = new TableCell(); 
cell.Text = keyName; 
row.Cells.Add(cell); 
cell = new TableCell(); 
cell.Text = keyValue; 
row.Cells.Add(cell); 
KeyValueTable.Rows.Add(row); 

我剛遍歷所有鍵/值對,並且每個都動態地添加到表中。在加載頁面時,所有內容都運行平穩,並且所有鍵/值對都按預期顯示。

當用戶單擊一個按鈕(此後設置爲runat =「server」)時,會生成回發事件,則會出現此問題。它所做的似乎是清除上面生成的動態內容,然後重新創建它(因爲它是在Page_Load事件中創建的)。

我更願意做的是選擇何時清除動態內容,因爲我不希望它不必要地刷新,因爲每次刷新實際上都是從數據庫中進行的。

我試圖做的是執行動態內容的生成,如果它不是回發。 IE:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     GenerateDynamicContent(); 
    } 
} 

然而什麼,現在做的是產生在第一次加載頁面,但是一旦出現一些回發事件(如點擊按鈕的用戶),動態內容被抹了動態內容,但未創建。

基本上我所希望的是發現某種方式,我可以創建動態內容,如上所示,不會在任何回發事件上被擦除。我希望能夠控制它何時刷新,而不是在任何回發事件中發生。這可能嗎?

非常感謝

+0

有很多方法 1.儘量把該數據表視圖狀態中並在回發中檢查爲空 2.在表單上放置一些隱藏字段並檢查。如果(!IsPostBack && hiddenfield1.value)可能會幫助你 – Madhu 2012-01-27 05:04:00

回答

0

我發現,把動態代碼嵌入Page_Init代替的Page_Load防止回傳過程中被消滅的內容