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 条件が失敗し、メニュー クリック イベントが発生しません。
メニューのクリックイベントをif条件の外に書きました。この場合、メニュー クリック イベントも発生していません。
私の正確な要件は、if(!IsInAsyncPostBack)
メニュークリックイベントを使用する必要があるだけでなく、ポストバック条件を使用することです。出来ますか?