ユーザーが別のLinkButtonをクリックしたときにLinkButtonを動的に読み込みます。私はそれにイベントハンドラを添付しています。ユーザーが動的に読み込まれたLinkButtonをクリックすると、イベントは発生しません。動的に読み込まれたコントロール - Page_Initの値にアクセスする方法
私が読んでいるところでは、これは、ページが動的に読み込まれたコントロールがもう存在しなくなったためです。このコントロールがPage_Initで再作成されていることを確認する必要があります。
動的に作成されるLinkButtonは、値(製品ID)に依存します。この値にアクセスするには、私は適切にコントロールを作成できるようにする必要があります。 ViewStateにアクセスできず、セッションを使用するとタイムアウトになる可能性があり、それが役に立たないことが懸念されます。何か案は?
また、テストのためにプロダクトID値をハードコードしましたが、それでもイベントが発生しませんでした。私は何か他に何かする必要がありますか?
protected void Page_Init(object sender, EventArgs e)
{
SetTabText(1, 1);
}
SetTabTextがLinkButtonコントロールを作成しますSetActionLinks呼び出す:私はあなたのコードを試してみました、あなたのシナリオでは
protected Panel SetActionLinks(int prodID, int tabID) {
...
LinkButton lnkBtn = new LinkButton();
lnkBtn.ID = "lnkBtn" + rand.Next().ToString();
lnkBtn.CommandName = "action";
lnkBtn.Command += new CommandEventHandler(this.lnkAction_Command);
panel.Controls.Add(lnkBtn);
...
}
void lnkAction_Command(object sender, CommandEventArgs e)
{
LinkButton btn = (LinkButton)sender;
switch (btn.CommandArgument)
{
AddCart();
}
}
私のイベントを匿名の代理人に変更しましたが、何も変更されていないようです... –