0

このスクリプトの使用方法と実際の動作について少し混乱していますか?

これが私のスクリプトです:

 <script type="text/javascript">
        $(document).ready(function () {
            $('#<%=TextBox1.ClientID%>').change(function () {
                $('#various3').attr('href', $(this).val());
            });


                $("#<%=Button1.ClientID%>").click(function (event) {
                    setTimeout(showStickySuccessToast, 1000);
                    function showStickySuccessToast() {
                        $().toastmessage('showToast', {
                            text: 'Finished taking Screenshot!',
                            sticky: false,
                            position: 'middle-center',
                            type: 'success',
                            closeText: '',
                            close: function () {

                            }
                        });
                    }

                })                
        });
      </script>

これは私のボタンです:

<a id="various3" href="#"><asp:Button ID="Button1" runat="server" 
    Text="Button" OnClientClick="Button1_Click"/></a>

これはbutton1_Clickイベントの背後にある私のコードです:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim NewTh As New Threading.Thread(AddressOf DoIT)
    NewTh.SetApartmentState(Threading.ApartmentState.STA)
    NewTh.Start()
    ImgPreview.ImageUrl = "~/uploads/Sample.jpg"
End Sub

ボタンをクリックすると、iframeが開き、実行できるメッセージが表示されます。ここで問題となるのは、コードビハインドにあるbutton1_Clickイベントを同時に呼び出す方法です。以下に示すようにイベントを使用OnClickOnClientClickましたが、機能せず、エラーも発生しません。

4

2 に答える 2

1

Onclick=ポストバックを発生させ、サーバーのイベントハンドラーを実行します。

OnClientClick=クライアントクリックイベントを発生させ、javascript関数を呼び出すことはできますが、javascript関数を呼び出した後、ポストバックが発生しますが、aspイベントを直接処理することはできません。

于 2011-11-22T15:28:33.780 に答える
1

あなたは物事を逆行させているようです:

<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" />

上記の例でButton1_Clickは、がコードビハインドクリックイベントハンドラーであると想定しています。jQueryでクライアントクリックイベントを割り当てるので、使用する必要はまったくありませんOnClientClick

編集

検証がクリックに干渉していないことを確認します。CausesValidation="false"ボタンを設定することでこれをテストできます。

于 2011-11-22T15:33:04.240 に答える