問題: 我加載基於在父頁RadTabstrip控件中選定的選項卡的幾個用戶控件之一。我捕獲了選定的選項卡,並將其分配給OnTabClick事件中的Session變量,以便在每個用戶控件中使用,以確定是否需要呈現該特定控件。你可以強制頁面渲染後加載
原因是因爲每個用戶控件都會查詢一個數據庫來渲染不同的圖表,而且我不希望每次回發到服務器都會發生不必要的處理。我想補充一點,每個用戶控件在其標記中都有幾個標籤,它們只能根據從數據庫中檢索到的內容獲取在運行時期間分配的文本值。
當我加載主頁面時,每個用戶控件都會檢查選中的選項卡變量,並且在該範圍內一切正常。 (索引0的第一個選項卡沒有圖表)
問題是當我選擇一個具有用戶控件的選項卡時,從數據庫中獲取數據並構建圖表的適當代碼正常工作,但TEXT值標記中的標籤控件不會顯示在頁面上,儘管TEXT值是在數據被重新獲取的同時在代碼隱藏中設置的。
如果我執行相同頁面的回發,將顯示Label控件的TEXT值。
我相信這是因爲其中包括標記的渲染頁面生命週期的第一個階段是不觸發用戶控件上的初始加載,但在隨後的重新加載或頁面的刷新會被解僱。
有沒有辦法解決這個問題?點擊數據庫後,我正在調用Render事件,但我可能會基於我的想法離開。
任何人都可以提供一些建議或潛在的解決方案?
感謝
它絕對聽起來好像你的用戶控制數據被映射到用戶控制標籤到晚了。何時以及如何創建用戶控件?這聽起來像你在OnTabClick方法中這樣做,這應該不是問題,因爲用戶事件在Page_PreRender()之前觸發,這是您發送給客戶端之前修改頁面的最後機會事件。 – 2012-03-07 15:51:40
UserControl是靜態的,並且已經在網站中創建。層次結構是:主頁面,子主頁面,ASPX頁面,然後是在ASPX頁面中使用標籤名稱和前綴註冊並在div標籤中添加到該頁面的用戶控件。當站點加載ASPX頁面時,加載併爲每個UserControl呈現標記。如果我刪除了條件檢查並僅允許構建所有控件,則問題不會發生;但是,我有其他問題不斷查詢每個UserControl在回發數據庫。表現的殺手。 – Mark 2012-03-07 16:18:59