2012-01-30 48 views
1

我已經構建了一個帶有主頁面和多個內容頁面的ASP.net站點。我最近在主頁面添加了一個新的菜單控件,這樣我就可以從後面的代碼和所有的作品中動態地建立一個菜單(基於用戶訪問級別),直到我做了回發,菜單完全消失。如何在回發後在MasterPage上保留動態創建的控件

我目前有一個(!Page.IsPostback)裏面的菜單構建函數,因爲回發時出現以下錯誤。

「名稱不能以」2「字符開頭,十六進制值0x32。第1行,位置1538.」

我期望做的是找到一種方法來在回發發生後(或解決錯誤,我會很高興)在主頁上保留新的動態構建控件。

任何幫助,將不勝感激。

回答

1

您必須始終對控件進行初始化(並添加到控件樹中) - 而不僅僅是基於回髮狀態進行選擇。因此,將dyn-init代碼放在page-init(OnInit)中,始終執行,它應該可以工作。

該方法等同於在aspx/ascx文件內定義一個內聯asp.net控件 - 所有標記在Page的OnInit中被解釋,這些控件被添加到頁面的控件樹中。

+0

這個「name can not begin ...」錯誤可能是不相關的 - 它表明某些東西(某些元素或asp.net控件)的名稱[屬性]不應以char「2」(或可能是數字)開頭;你必須在你的控件中尋找,或者搜索'name ='2'。 – 2012-01-30 07:39:18

0

我喜歡關閉我的問題。

經過與菜單控制供應商的長時間調查和對話後,我能夠在原始控件內找到並證明一個錯誤。顯然,在我提供的用於構建菜單的一些數據中,前導數字(在本例中爲2)導致控件播放。我不知道原因是什麼或者爲什麼失敗,但是供應商已經修復並控制並提供了一個新版本的代碼,現在都運行良好。

感謝那些想過這個的人。

相關問題