Virendra S from Bangalore, Karnataka Ответов: 1

Как показать всплывающее окно подтверждения при нажатии на кнопку управления ASP


У меня есть управление кнопкой asp, при нажатии этой кнопки должно появиться одно всплывающее окно, которое должно задать опцию YES или NO, при выборе опции yes из этого всплывающего окна должна быть вызвана функция со страницы aspx.cs.


страница ASPX:
<asp:Button ID="Button1" runat="server"  OnClick="Button1_Click"  Text ="Button" />


Aspx-файл.СТРАНИЦА CS:

protected void Button1_Click(object sender, EventArgs e)
        {
            DoSomethingMethod(){ }
        }





при нажатии кнопки 1 Всплывающее окно должно быть вызвано, срабатывающее всплывающее окно должно иметь 2 варианта, такие как да или нет,
при выборе YES я должен вызвать DoSomethingMethod() , а при выборе NO ничего не делать.

Что я уже пробовал:

я не получаю никакого представления об этом, решение может быть в порядке с jquery, javascript,asp-валидацией, все в порядке.

1 Ответов

Рейтинг:
0

Richard Deeming

Вам придется сделать это в Javascript, так как ваш код C# работает на сервере и не может взаимодействовать с пользователем.

<asp:Button ID="Button1" runat="server"

    OnClientClick="if(!confirm('Really do the thing?')){return false;}"

    OnClick="Button1_Click"

    Text="Button"

/>
Кнопка.Свойство OnClientClick (System.Web.UI.WebControls) | Microsoft Docs[^]
Window.confirm() - веб-API | MDN[^]


Virendra S from Bangalore, Karnataka

Window.confirm() полезен, но я ищу какое-то стандартное всплывающее окно, такое же, как диалоговое окно jquery, можете ли вы помочь мне в этом?

Richard Deeming

Там нет стандартного всплывающего окна, кроме alert и confirm.

Если вы используете что-то вроде диалогового окна jQuery или модального Bootstrap, то все становится еще сложнее. Отображение диалогового окна не остановит отправку формы, поэтому вам потребуется больше кода для управления процессом отправки. Например:

var clickedButton = null;

function displayConfirmation(evt){
    if (clickedButton === evt.target) {
        return;
    }
    
    evt.preventDefault();
    clickedButton = evt.target;
    // Display your dialog box here...
}

function dialogOkButtonClicked(){
    // Hide the dialog box here...
    clickedButton.click();
}

function dialogCancelButtonClicked(){
    // Hide the dialog box here...
    clickedButton = null;
}


Кроме того, вы можете воспользоваться полифилл showModalDialog[^].