2011-02-01 15 views
2

リストボックスと選択されたインデックスが変更されたテキストボックスとテキスト変更イベントがそれぞれaspxページに配置されています。今テキストボックスに何かを書いて、他の場所をクリックしてリストボックスの値を選択すると、テキストボックスの最初のテキスト変更イベントが呼び出され、リストボックスの選択されたインデックス変更イベントが呼び出されます。その後、テキストボックスのテキスト変更イベントはと呼ばれます。どのような体は何が起こっているいくつかの洞察力を与えることができますか?ASP.Net:テキストボックスのテキスト変更イベントを呼び出す際の問題

以下

マークアップです:背後

<asp:ListBox ID="ListBox1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ListBox_IndexChanged"> 
    <asp:ListItem Text="abc" /> 
    <asp:ListItem Text="def" /> 
</asp:ListBox> 
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="true" OnTextChanged="Text_Changed" /> 

コード:新しいアイテムが選択されている場合

namespace WebApplication1 
{ 
    public partial class _Default : System.Web.UI.Page 
    {    
     protected void ListBox_IndexChanged(object sender, EventArgs e) 
     { 

     } 

     protected void Text_Changed(object sender, EventArgs e) 
     { 

     } 
    } 
} 
+0

本当ですか?私はこの正確なコードを実行しようとし、ListBox_IndexChangedイベントが最初に発生し、続いてText_Changedイベントが1回だけ発生します。 – Pandincus

+0

ああ、そうです。私がChromeの代わりにIEでテストすると、シーケンスはあなたが言ったように起こります。 – Pandincus

答えて

1

問題/問題は、AutoPostBackがJavaScriptイベントをコントロールに追加することによって機能することです。各ブラウザはJavaScriptを少し違った方法で処理します。したがって、注文に対する実際の保証はありません。私はGoogle Chromeのでコードをしようとすると

は、例えば、次の一連のイベントが発生します。

  1. リクエストが
    1. ListBox_IndexChangedイベントが
    2. TEXT_CHANGEDイベントが
    3. を呼び出さ呼び出されるサーバーに送信します
  2. 応答はクライアントに戻ります
  3. クライアントに戻り
    1. TEXT_CHANGEDイベントが
  4. 応答呼び出されるサーバーに送信

    1. 要求:

    はしかし、のInternet Explorer 8に、私は、次の手順に気づきました

  5. もう1つリクエストがサーバーに送信されました
    1. ListBox_IndexChangedイベントは、ちょうどJavaScriptの実装を変える、これは、ASP.NETのせいではありません
    2. TEXT_CHANGEDイベントが
  6. 第二応答がクライアント

に戻りを呼び出さ呼び出されますブラウザを横切って、私は思います。

イベントの特定のシーケンスに依存する必要がある場合は、AutoPostBackはそれをカットしません。あなたの状況によっては、jQueryのようなブラウザ間で互換性のあるライブラリを使用して、独自のJavaScriptイベントを実装する方法があります。 __doPostBack()関数を使用して、プログラムでサーバーにコールバックすることができます。

0

リストボックスのテキスト部分のテキストは、項目のテキストに置き換えられます。そのため、2番目のTextChangedイベントが発生します。

+0

彼がそのままコードを書いたのであれば、その値をテキストにコピーする理由はないので、あなたのアプローチは論理的ではないと思っています。 –

+0

これは当てはまりません。 LordCoverは正しいです。 – Anoop

関連する問題