Bootstrap диалог подтверждения Да кнопка не работает в ASP.NET - PullRequest
0 голосов
/ 10 января 2020

У меня есть кнопка ASP. NET, и когда я нажимаю на нее, я отображаю div как модальное всплывающее окно, подобное диалогу подтверждения.

В диалоговом окне подтверждения, если пользователь нажимает «да» , событие сервера кнопки должно быть выполнено. Я попробовал этот код:

<form id="form1" runat="server">
    <div id="modalPopUp" class="modal fade" role="dialog">
        <div class="modal-dialog" style="width: 400px">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title">
                        <span id="spnTitle"></span>
                    </h4>
                </div>
                <div class="modal-body">
                    <p>
                        <span id="spnMsg"></span>.
                    </p>
                </div>
                <div class="modal-footer">
                    <asp:Button type="button" ID="btnConfirm" class="btn btn-danger" runat="server" Text="Yes"
                    OnClick="btnDelete_Click"></asp:Button>
                    <button type="button" class="btn btn-default" data-dismiss="modal">NO</button>

                </div>
            </div>
        </div>
    </div>
    <asp:Button runat="server" ID="btnDelete" 
         Text="Delete" CssClass="btn btn-danger" 
         OnClientClick="return getConfirmation(this, 'Please confirm','Are you sure </br> you want to delete?');"
         OnClick="btnDelete_Click"/>

    <br />
    <asp:Literal ID="litMsg" runat="server"></asp:Literal>
</form>


protected void btnDelete_Click(object sender, EventArgs e)
{
    // Write the code here to delete the record
    litMsg.Text = "Record deleted successfully";
}

<script type="text/javascript">
    function getConfirmation(sender, title, message) {
        $("#spnTitle").text(title);
        $("#spnMsg").html(message);
        //$('#modalPopUp').modal({ backdrop: 'static', keyboard: false });
        $('#modalPopUp').modal({ keyboard: false });
        //$('#btnConfirm').attr('onclick', "$('#modalPopUp').modal('hide');setTimeout(function(){" + $(sender).prop('href') + "}, 50);");
        var fClose = function () {
            $('#modalPopUp').modal('hide');
        };
        $("#btnDelete").unbind().one("click", fClose);
        return false;
    }
</script>

Когда я нажимаю кнопку «Удалить», появляется диалоговое окно подтверждения с кнопками «да» и «нет». Когда я нажимаю «Нет», диалог закрывается. Когда я нажимаю «Да», ничего не происходит.

Мое требование состоит в том, чтобы я хотел выполнить событие сервера нажатия кнопки отправителя (которое передается функции getConfirmation).

Пожалуйста, направьте меня - где я делаю что-то не так?

1 Ответ

0 голосов
/ 10 января 2020

Вы должны разрешить событию «onclick» кнопки сделать PostBack. Это приведет вас к BackEnd (C#) коду. Вы можете сделать это, добавив атрибут AllowPostBack к кнопке. но страница будет обновляться sh, когда вы делаете PostBack. она исчезнет из вашей модели.

Лучшее решение в этой ситуации - использовать ajax запрос на доступ к коду BackEnd.

...