我正在动态创建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)
条件为真时,RadMenu会动态创建并加载到页面中。
当我单击菜单项时,Postback变为true,因此if条件失败并且菜单 点击事件未触发。
我在if条件之外编写了菜单点击事件。在这种情况下,菜单点击事件也不会触发。
我的确切要求是我想使用if(!IsInAsyncPostBack)
回发条件以及我需要使用菜单点击事件。有可能吗?
答案 0 :(得分:0)
在Page_Init事件中添加它并删除if(!src.IsInAsyncPostBack)检查。这是以编程方式创建控件的最简单方法。
可能你的菜单是ajax启用的,所以它的POST是部分的,所以你的代码不会重新创建它,所以它不能提升它的处理程序。