Событие OnClick / OnClientClick с Asp.Net - PullRequest
0 голосов
/ 22 ноября 2011

Я немного запутался в использовании этого скрипта и как он на самом деле работает?

Вот мой сценарий:

 <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

Теперь, если я нажму на кнопку, она откроет фрейм и отобразит сообщение, которое я могу сделать. Теперь проблема в том, как я могу вызвать событие button1_Click, которое находится одновременно в коде. Я использовал событие OnClick и OnClientClick, как показано ниже, но оно не работает, и я не получаю никаких ошибок.

Ответы [ 2 ]

1 голос
/ 22 ноября 2011

Похоже, у тебя все наоборот:

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

В приведенном выше примере предполагается, что Button1_Click является обработчиком события щелчка с выделенным кодом. Поскольку вы назначаете событие клика клиента в jQuery, вам не нужно вообще использовать OnClientClick.

EDIT

Я бы проверил, чтобы проверка не влияла на клик. Вы можете проверить это, установив CausesValidation="false" на кнопке.

1 голос
/ 22 ноября 2011

Onclick = вызывает обратную передачу, выполняя обработчик событий сервера.

OnClientClick = вызывает событие щелчка клиента, и вы можете вызвать функцию javascript, но вы не можете напрямую обработать событие asp, хотя после вызоваФункция javascript выполняет обратную передачу.

...