次のコードを使用して2回目のクリックでコマンドイベント引数を取得するときに問題が発生しています。問題コマンドイベントでcommandeventargsを取得するときに、ポストバックのコントロールの再作成後に問題が発生する
私はボタンクリックを処理し、そこにあったものを置き換えるために新しいボタンを生成すると、次のボタンクリックでビューステートを失います。
これを動作させるには何が必要なのですか?私はコマンドハンドラには全く関係のないボタンの可変数を生成しなければならないので、構造を大きく変更することはできません。
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
LinkButton btn = new LinkButton();
btn.ID = "btn1";
this.Panel1.Controls.Add(btn);
btn.Command += new CommandEventHandler(myLinkButton_Command);
}
else
{
LinkButton btn = new LinkButton();
btn.ID = "btn1";
this.Panel1.Controls.Add(btn);
btn.Text = "My Button 1";
btn.CommandArgument = "1";
btn.Command += new CommandEventHandler(myLinkButton_Command);
}
}
void myLinkButton_Command(object sender, CommandEventArgs e)
{
int newArg = Convert.ToInt32(e.CommandArgument) + 1;// empty string on second mouse click
this.Panel1.Controls.Clear();
LinkButton myLinkButton = new LinkButton();
myLinkButton.ID = "btn1";
this.Panel1.Controls.Add(myLinkButton);
myLinkButton.Text = "My Button " + newArg.ToString();
myLinkButton.CommandArgument = newArg.ToString();
}
}
ありがとう - 私はこれまで考えたことはないと思う。うまくいけば、これは私の実際のプロジェクトで起こっていることに似ています。 – dice