2

クリック機能付きの2つのボタンがあります

最初のものは、クリックされたときに変数が割り当てられます。

ボタン2をクリックしたときに最初のボタンから変数を取得するために2番目のボタンを取得するにはどうすればよいですか?

うまくいかないようです。2番目のボタンは変数を認識しません。

ありがとう

編集:

明確にするために、私のコードはpdfを生成しています。ボタン 1 は、使用するテンプレートの URL を選択します。ボタン2(pdfを生成するボタン)では、ボタン1から変数セットを取得して、使用するテンプレートを認識します。

EDIT 2: 私のコードは機能しますが、ajax 更新パネルを使用していない場合のみです。設定しようとしている変数が AJAX で設定されていないようです

4

2 に答える 2

2

あなたのボタンには がありId、このボタンは彼のId

注:サーバー側で視覚化するために runat="server" を追加できます

<asp:Button id="Button1"
           Text="Click "
           OnClick="Btn1_Click" 
           runat="server"/>

<asp:Button id="Button2"
           Text="Click "
           OnClick="Btn2_Click" 
           runat="server"/>

void Btn2_Click(Object sender, EventArgs e)
{
    Button1.Text = "test after click on button 2";

    Template = ...;//Set your value
}


void Btn1_Click(Object sender, EventArgs e)
{
    Button2.Text = "test after click on button 1";

    //Here you can get your value after post.
    var result = Template; 
}

サブジェクトではありませんが、デリゲートでは、sender 引数を渡すことでオブジェクト ボタンを取得することもできます。

var button = sender as Button; //You get button who raise event

Template Path財産管理のため。

public string Template
{
   get
   {
      if(ViewState["Template"] != null)
      {       
         return (string)ViewState["Template"];
      }
   }

   set{ViewState["Template"] = value;} 
}
于 2012-09-12T15:35:21.523 に答える
-1

ボタン1のクリックイベントで値が設定されているボタン2のクリックイベント内の変数の値にアクセスしていると思いますか?

private string myPrivateString = "";

void Page_Load()//Not sure of correct method signature
{
  if(Page.IsPostBack)
  {
    myPrivateString = Session["myPrivateString"];
  }
}

void Button1_Click(object sender, EventArgs e)
{
  //There will a postback before this gets executed
  myPrivateString = "Value Set From Button 1";
  Session["myPrivateString"] = myPrivateString;
}

void Button2_Click(object sender, EventArgs e)
{
  //There will a postback before this gets executed
  //Accessing myPrivateString here without setting value from session
  //will return empty string as after PostBack its a new page thats rendered.
  myPrivateString = Session["myPrivateString"]; // Or do it in the Page_Load event
}

これで、button2 クリック イベント内の値を取得できると思います。
また、ASP.NET ページのライフサイクルと、ボタン クリックなどのクライアント側イベントが ASP.NET フレームワークによってどのように処理されるかについてもお読みください。

于 2012-09-12T16:14:10.640 に答える