2011-02-22 17 views
0
<asp:UpdatePanel ID="uppBaixa" runat="server"> 
    <ContentTemplate> 
      <asp:TextBox ID="txt1" runat="server" AutoPostBack="true" OnTextChanged="txt1_TextChanged"></asp:TextBox> 
      <asp:TextBox ID="txt2" runat="server"></asp:TextBox> 
      <asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 

これは基本的にASPXの外観です。私が離れるとき(タブ)txt1TextChangedイベントが呼び出され、通常はtxt2が入ります。しかし、私はtxt2でテキストを変更し、このデータを更新するbtnSaveを打ったとき(実際btnSave_Clickメソッドがトリガー前)、txt1_TextChangedポストバックを作成したときにTextChangedイベントが再度トリガーされる

答えて

0

AGAINと呼ばれているあなたは

  • はあなたのサンプルのUpdatePanelを取り、にそれを置く場合新しいプロジェクト(とのScriptManagerを追加)
  • は、以下の方法

    protected void btnSave_Click(object sender, EventArgs e) 
    { 
        this.txt1.Text = "foo"; 
    
    } 
    protected void txt1_TextChanged(object sender, EventArgs e) 
    { 
        txt2.Text = txt1.Text; 
    } 
    
  • UPDAを追加します。 ABCにTE TXT1そしてTXT2は、txt1.TextはABCとなり、TXT2保存]を押すと

  • だけではFooにTXT1を変更し、TXTは、バーを

残るバーになる棒にABC

  • 更新TXT2になりますつまり、記述した内容は再現されません。あなたは、サーバー側でtxt1.text = "foo"を設定した場合でも、それは、クライアント側でそのおそらく何か、それを見つけるためにあなたのPage_Loadイベントにこれを追加すること

    てみてくださいを意味textChangedイベントを発生させないことを

    は注意してください。

    this.btnSave.Attributes.Add("OnClick", "debugger"); 
    
  • +0

    申し訳ありません。コードは動作しています(少なくとも私が言及した部分)、私はちょうどここにすべてを入れていません。私はここにこの "疑似"コードを投稿してみました。 –

    関連する問題