2009-04-13 71 views
0

我在頁面的左側有一個用戶列表,在數據網格中,我想用點擊的用戶信息加載頁面右側的div。我假設我會在itemcommand事件中完成div的加載,但是如何處理頁面加載呢?我是否需要知道是什麼導致回發?我是否還需要重新加載網格page_load確定回發是page_load還是itemcommand

回答

0

排除網格檢查結合!的IsPostBack

if(!IsPostBack){ 
    // Bind the Grid 
} 

對於DIV itemcommand你檢索的是從電網點擊的價值和加載用戶的信息。

所以,你不需要每次加載網格。它只會第一次加載。我不認爲你會需要檢查什麼回推,因爲無論如何,你只會加載一次網格。

1

我該如何處理頁面加載呢?

每次回發都使用一個全新的頁面類實例,並完全重建頁面。唯一不同的是,一些控件可能通過ViewState預先填充。您無需爲任何這些控件重複加載工作。

我需要知道是什麼導致回發?

ASP.Net將爲您處理並處理事件。你只需要知道它是否是回傳,甚至可能不是(見下一部分)。

我是否需要重新加載page_load上的網格?

是的。好吧,有點。您需要將網格的html重新呈現給瀏覽器。好消息是你的網格數據已經處於視圖狀態,並且會自動發生。你不必自己擔心。

但是,在許多情況下,您可能會發現最好關閉網格的視圖狀態並在每次回發時重新加載它們。這是因爲ViewState只是頁面上的一個隱藏輸入,必須通過每個請求將其發佈(上載)到服務器。大多數互聯網用戶的上傳帶寬非常有限,因此即使您的服務器幾乎沒有出汗,一個大型的ViewState也可能讓您的網站看起來很糟糕。

根據您的情況,您可以通過在部分控件上禁用ViewState來交易多餘的服務器性能以實現站點響應。在這種情況下,您將始終加載網格,不再需要關心請求是否爲回發。

相反,如果這是一個int ra網絡應用程序,其中用戶通常有本地以太網連接到您的Web服務器,很難擊敗ViewState以平衡響應能力和服務器性能。

相關問題