AJAX ModalPopup вызвано выпадающим списком - PullRequest
1 голос
/ 18 июля 2009

Если выбран пункт «Удалить» в выпадающем списке, я хочу отобразить диалоговое окно подтверждения через AJAX ModalPopup.

Если нажата кнопка ОК (в диалоговом окне подтверждения), должен быть вызван метод удаления.

Поскольку для свойства OnOkScript в ModalPopup требуется метод JavaScript, очевидно, что прямого способа вызвать метод на стороне сервера не существует.

Что мне делать?

Должен ли я поместить метод удаления в скрытую кнопку, передать его ссылку на функцию javascript (OnOkScript) и затем вызвать его через __doPostBack?

Есть ли более простой способ?

Ответы [ 2 ]

0 голосов
/ 23 октября 2009

У вас есть возможность делать все запрошенное через код на стороне сервера.

Установите разметку как нечто похожее:

<asp:DropDownList
    AutoPostBack="true"
    OnSelectedIndexChanged="ConfirmDelete_SelectedIndexChanged"
    runat="server" />

<asp:LinkButton
    ID="btnNotInUse"
    runat="server" />

<asp:Panel
    ID="pnlPopup"
    style="display:none;"
    runat="server">
    This is your confirmation dialog.<br />
    <asp:Button ID="btnDelete" runat="server" />
</asp:Panel>

<ajaxToolkit:ModalPopupExtender
    ID="mpeModal"
    TargetControlID="btnNotInUse"
    PopupControlID="pnlPopup"
    runat="server" />

Теперь, когда ваш DropDownList изменится, вы запустите серверное событие «ConfirmDelete_SelectedIndexChanged», которое выглядит следующим образом:

protected void ConfirmDelete_SelectedIndexChanged(object sender, EventArgs e)
{
    if(/*some logic that states if "delete" is selected*/)
        mpeModal.Show();
}

Фактически, когда вы изменяете выбор в раскрывающемся списке, сервер проверяет, был ли выбран «Удалить». Если это так, ваше модальное всплывающее окно теперь отображается с кнопкой, которая на самом деле может удалить из вашего источника данных или сделать все, что вам нужно.

0 голосов
/ 18 июля 2009

В вашем методе JavaScript OnOkScript выполните AJAX POST на странице на стороне сервера, чтобы выполнить удаление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...