ASP.NET/VB.NET:Dropdownlist SelectedIndexChanged onchange = "javascript:return true;"

私は次のマークアップを持っています:


    1
    2


    3
    4

これまでに配線された:

Protected Sub changed1(sender As Object, e As EventArgs) Handles dd1.SelectedIndexChanged

End Sub

Protected Sub changed2(sender As Object, e As EventArgs) Handles dd2.SelectedIndexChanged

End Sub

dd2のインデックスが変更されると、そのハンドラが起動すると予想されます。まあ、そうではありません。代わりに、dd1のハンドラがそのインデックスが変更されたときに起動された後に、 "キューに入れられ"、起動されます。あなたが onchange = "javascript:return true;" をdd2から外すと、それはうまくいきます。

誰が何が起こっているのか分かりませんか?

編集:私の最初の答えは、ドロップダウンリストのリターン式を使用すると、ボタンのクリックイベントと同じようには動作しませんが、私は前にドロップダウンリストでこれを行ったことを誓います。

Update: I am able to force the server event to fire by doing this in Javascript:

__doPostBack("<%=dd2.ClientID %>", '');

なぜ私はこれをしなければならないのかわかりませんが、それは機能します。しかし、私はまだそれを他の方法でやりたいと思っています。誰かが知っていれば私に知らせてください。

3

5 答え

あなたはそれをまったく必要とすべきではありません。 AutoPostBack をtrueに設定するだけです。検証をエスケープする必要がある場合は、 CausesValidation をfalseに設定してください。


4
追加された
私は検証を使用していますか?
追加された 著者 oscilatingcretin,
私の例では、私はすでにAutoPostBack = "true"を持っていることを示しています。私はまた、検証で何もしていません。私は、trueまたはfalseを返すかどうかによって、サーバーサイドのイベントが発生しないようにしたいだけです。
追加された 著者 oscilatingcretin,
AutoPostBack = "true" は私の問題を解決しました。
追加された 著者 AceMark,
あなたがバリデーションを使用しているかどうか私に尋ねていますか?ページにバリデータがあるが、DropDownListでバリデーションを開始させたくない場合は、 CausesValidation をfalseに設定します。それ以外の場合は、 AutoPostBack をtrueに設定するだけです。すべて正常です。
追加された 著者 James Johnson,
たぶん私は混乱しています...あなたは何をしようとしていますか、そして何が問題なのですか?
追加された 著者 James Johnson,

何らかの理由で、ボタンのonclickイベント(たとえば、 onclick = "javascript:return false;" )のように、クライアントサイドのonchangeイベントでfalseを返すことで、 。

私がやったことは、関数内の状態をチェックすることでした。 trueの場合、これは次のように発生します。

__doPostBack("<%=dd2.ClientID %>", '');

そうでなければ、それはしません。

2
追加された

                            

Autopostback = "true を追加すると、私のトリックがやりました。

1
追加された

__doPostBack("<%=dd2.ClientID %>", '');

これは私のために働いた...

これは私のドロップダウンだった.........

ここに私のjquery関数です

関数CheckDate(){

    var date = document.getElementById('<%= ucDateTimeStart.FindControl("txtDateTime").ClientID %>').value;
    if (date == '') {
        alert("Please select a valid date.");
        return false;

    }
    else {
        __doPostBack("<%=ddlbranchname.ClientID %>", '');
        return true;
    }


    return true;

}
0
追加された
this is my drop down..
 
                
0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript