DoPostback обновляет страницу, но не перехватывает обработчик событий

StackOverflow https://stackoverflow.com//questions/25041404

Вопрос

Прежде всего должен отметить, что я провожу целый день в поисках и не могу понять, что не так с моим кодом и почему он не работает...

Мне нужен модальный диалог для подтверждения в моем коде, поэтому я использую этот модальный диалог jQuery: JQuery Подтвердить

Мне нужно встроить эту функциональность в <asp:Button>...

Моя проблема в том, что когда я нажимаю на кнопку, появляется всплывающее диалоговое окно, но кнопки «да/нет» не работают, и обе диалоговое окно просто исчезают.

Также я использую код ниже, но __doPostBack() вообще ничего не делал, но отлично запускал простые js-коды, такие как alert(''):

$("#complexConfirm").confirm({
     title: "Redirect confirmation",
     text: "This is very dangerous, you shouldn't do it! Are you really really sure?",
     confirm: function (button) {
         __doPostBack('complexConfirm', 'OnClick');
     },
     cancel: function (button) {
         return false;
     },
     confirmButton: "Yes",
     cancelButton: "No"
});

Я ищу и элемент диалогового окна выходит за пределы элемента формы, поэтому мне следует вернуть его в форму, но я не знаю, как мне попробовать код ниже, и это не так.

$("#editEventModal").parent().appendTo(jQuery("form:first"));

Другая проблема заключается в том, что я пытаюсь выполнить обратную передачу с событием javascript без диалогового окна, я использую две кнопки: одну для вызова javascript, а другую для этого, но когда я использую __doPostBack, он обновляет страницу, но не доходит до события моей кнопки в коде. -Сзади я пробую несколько способов вызова события кнопки onClick, но оно просто обновляет страницу и не вызывает мою кнопку OnClick Mehtod !!!

Объявление кнопок выглядит следующим образом:

<asp:Button ID="complexConfirm" ClientIDMode="Static" runat="server" OnClick="TestBTN_Click" Text="Test" />
<asp:Button ID="checkit" ClientIDMode="Static" runat="server" OnClientClick="__doPostBack('<%=complexConfirm.UniqueID%>', '');" Text="CHECK" />

Что мне делать с этими двумя проблемами?

Я много ищу, и ни одно из решений мне не помогло!!!

Буду признателен за любое решение, спасибо.

Это было полезно?

Решение

Не зная объявления вашей кнопки asp:, вот мое лучшее предположение.

Вам нужно использовать уникальный идентификатор кнопки, атрибут «имя» кнопки, а не ее идентификатор.

__doPostBack('<%=complexConfirm.UniqueID%>', '');

кроме того, поскольку это кнопка, вам не нужно указывать OnClick

РЕДАКТИРОВАТЬ:Я создал рабочий пример, демонстрирующий, чего, по моему мнению, вы пытаетесь достичь.При необходимости вы можете адаптировать это к вашему подтверждению jQuery.

аспкс:

<asp:Button ID="btnTest1" runat="server" Text="Test1" OnClick="btnTest1_Click" />

яваскрипт:

<script>
    $('#<%=btnTest1.ClientID%>').confirm({
        text: "This is very dangerous, you shouldn't do it! Are you really really sure?",
        title: "Confirmation required",
        confirm: function (button) {
            // do something
            __doPostBack('<%= btnTest1.UniqueID%>', '');
        },
        cancel: function (button) {
            // do something
        },
        confirmButton: "Yes I am",
        cancelButton: "No",
        post: true
    });
</script>

код позади:

protected void btnTest1_Click(object sender, EventArgs e)
{
    Response.Write("You clicked YES");
}

Я думаю, что отчасти проблема заключалась в том, что имя вашего события не было названо именем вашей кнопки.Если вы используете autoEventWireup, как я думаю, вы и делаете, ваше событие не сработает, потому что оно не может найти событие с совпадающим именем.

Итак, первое, что я сделал, — это удалил StaticClientID.вы все равно можете использовать jquery с идентификаторами, сгенерированными asp.net.Затем я убедился, что событие было названо btnTest1_Click потому что имя кнопки btnTest1

Я не уверен, зачем вам нужна другая кнопка, потому что, похоже, все, что вы пытаетесь сделать, это подтвердить до отправки кнопки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top