簡體   English   中英

為什么動態創建的Radmenu ItemClick事件沒有觸發

[英]Why dynamically created Radmenu ItemClick event is not firing

我正在動態創建一個RadMenu。 我想使用RadMenu的菜單單擊事件。

其實我正在使用if(!Scriptmanager.IsInAsyncPostBack)條件。

if條件下,我只編寫代碼來動態創建菜單。 我將提供示例代碼以更好地理解。

if (!src.IsInAsyncPostBack)
{                  
    RadMenu menu = new RadMenu();
    RadMenuItem item1 = new RadMenuItem();
    item1.Text = "Home";
    RadMenuItem item11 = new RadMenuItem();
    item11.Text = "Home";
    item1.Items.Add(item11);                 
    RadMenuItem item2 = new RadMenuItem();
    item2.Text = "About";
    RadMenuItem item3 = new RadMenuItem();
    item3.Text = "Contact";
    menu.ItemClick += new RadMenuEventHandler(menu_ItemClick);                  

    menu.Items.Add(item1);
    menu.Items.Add(item2);
    menu.Items.Add(item3);
    Page.Controls.Add(menu);
}

void menu_ItemClick(object sender, RadMenuEventArgs e)
{
    Response.Redirect("Home.aspx");
}

當頁面加載if(!IsInAsyncPostBack)條件為true時,將動態創建RadMenu並將其加載到頁面中。

當我單擊菜單項時,Postback變為true,因此if條件失敗並且菜單click事件未觸發。

我在if條件之外編寫了菜單單擊事件。 在這種情況下,菜單單擊事件也不會觸發。

我的確切要求是,我想使用if(!IsInAsyncPostBack)回發條件,也需要使用菜單單擊事件。 可能嗎?

將其添加到Page_Init事件中,然后刪除if(!src.IsInAsyncPostBack)檢查。 這是以編程方式創建控件的最簡單方法。

您的菜單可能啟用了Ajax,因此從菜單進行的POST是局部的,因此您的代碼不會重新創建它,因此它無法引發其處理程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM