[英]Why dynamically created Radmenu ItemClick event is not firing
I am dynamically creating a RadMenu. 我正在动态创建一个RadMenu。 I want to use the menu click event of the RadMenu. 我想使用RadMenu的菜单单击事件。
Actually I am using if(!Scriptmanager.IsInAsyncPostBack)
condition. 其实我正在使用if(!Scriptmanager.IsInAsyncPostBack)
条件。
Within the if
condition I only write code to create the menu dynamically. 在if
条件下,我只编写代码来动态创建菜单。 I'll give the sample code for better understanding. 我将提供示例代码以更好地理解。
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");
}
When page loading if(!IsInAsyncPostBack)
condition true so the RadMenu is created dynamically and loaded in the page. 当页面加载if(!IsInAsyncPostBack)
条件为true时,将动态创建RadMenu并将其加载到页面中。
When I click the menu item, Postback becomes true, so the if condition fails and the menu click event is not firing. 当我单击菜单项时,Postback变为true,因此if条件失败并且菜单click事件未触发。
I wrote the menu click event outside of the if condition. 我在if条件之外编写了菜单单击事件。 In this case the menu click event is also not firing. 在这种情况下,菜单单击事件也不会触发。
My exact requirement is that I want to use if(!IsInAsyncPostBack)
postback condition as well as I need to use menu click event. 我的确切要求是,我想使用if(!IsInAsyncPostBack)
回发条件,也需要使用菜单单击事件。 Is it possible? 可能吗?
Add this in the Page_Init event and remove the if (!src.IsInAsyncPostBack) check. 将其添加到Page_Init事件中,然后删除if(!src.IsInAsyncPostBack)检查。 THis is the easiest way to create controls programmatically. 这是以编程方式创建控件的最简单方法。
Probably your menu is ajax-enabled so a POST from it is partial, so your code does not recreate it, so it cannot raise its handler. 您的菜单可能启用了Ajax,因此从菜单进行的POST是局部的,因此您的代码不会重新创建它,因此它无法引发其处理程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.