嗨,並提前致謝。Page_Init與Page_PreRender與渲染LI和CSS衝突
我有一個問題,我在頁面頂部顯示了一些鏈接(它們不是麪包屑),對於需要打開/關閉的不同環境以及用戶在頁面上突出顯示的一個。當我最初把頁面一起調用,顯示的鏈接是在Page_Init像這樣在母版頁功能:
protected new void Page_Init(object sender, EventArgs e)
{
SetTabs(session);
}
protected void SetTabs(session)
{
makeTab.add(session.param, session.param);
makeTab.generate();
}
protected void add(param, param)
{
Tabs.add(new tab() { link = param, name = param });
}
protected void generate()
{
foreach(tab t in Tabs)
{
liTab.Text = string.Format("<li><a href=\"{2}\">{1}</a>", t.name, t.link);
}
}
是那些獲得創建的鏈接是項目的無序列表內嵌顯示。
而且我有一個應用樣式的變化,突出了與用戶是對從頁面本身的Page_Load中調用頁面相關聯的鏈接一個單獨的方法:
protected void Page_Load(object sender, EventArgs e)
{
Master.makeTabBlue(nameOfTab);
}
然而,爲了讓隱藏的標籤重新正確顯示,我必須將SetTabs(會話)移動到Page_PreRender函數中,以便在保存頁面後更新會話時調用它們,但現在我已經完成了使得藍色標籤不再有效果。我已閱讀了關於頁面生命週期的內容,我認爲在makeTabBlue中呈現的CSS僅在Page_PreInit或Page_Init循環中有效,但如果我將makeTabBlue移動到其中任一頁面,則頁面開始拋出控件可能「因爲它們在PreRender之前不會被調用,所以這是有意義的。並在保存功能中調用它也沒有效果。我應該從哪裏調用makeTabBlue以使其正常工作?
UPDATE:
在這種特殊情況下,解決我的問題是離開SetTabs在Page_Init,離開makeTabBlue在Page_Load,我增加了一個獨特的類的李和我隱藏,顯示通過將值存儲在隱藏字段中並通過JavaScript鏈接,並在js加載時檢查該字段。
這是否意味着我應該嘗試將SetTabs移動到Page_LoadComplete或makeTabBlue?目前SetTabs在PreRender中,所以移動makeTabBlue在Page_LoadComplete中不起作用,因爲它仍然在PreRender之前。 – 2014-11-06 21:46:10
@ElaineK - 看我的編輯,這可能是一個更好的解決方案。 – webnoob 2014-11-06 22:13:10