[英]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.