Как мне обойти модальное вмешательство в событие нажатия кнопки? - PullRequest
0 голосов
/ 22 февраля 2019

В моем приложении ASP.Net Web Form у меня есть кнопка, и эта кнопка должна запускать модальный ajaxToolKit: ModalPopupExtender.

<asp:Button ID="uxTicketHistoryButton" runat="server" Text="Show Ticket History"  style="color: blue;" OnClick="uxTicketHistoryButton_Click"/>&nbsp;
<ajaxToolkit:ModalPopupExtender ID="uxTicketHistoryModal" runat="server" PopupControlID="Panel1" TargetControlID="uxTicketHistoryButton"CancelControlID="btnClose" BackgroundCssClass="modalBackground"></ajaxToolkit:ModalPopupExtender>
<asp:Panel ID="Panel1" runat="server" CssClass="modalPopup" align="center" style = "display:none">
....
</asp:Panel ID>

Я задал предыдущий вопрос о том, как вставить значения переменных C # в модальный режим, но, похоже, моя проблема заключается в том, что модальный режим, похоже, мешает моей функции кнопки click event;по сути, удерживая его от увольнения.Предполагается, что эта функция позволяет получить данные, которые мне нужно подключить к модалу после нажатия кнопки и запуска модального режима.

protected void uxTicketHistoryButton_Click(object sender, EventArgs e)
{
    DataTable ticketHist = _dtMgr.GetContactInfoByName(uxContactDropdownList.SelectedValue);
    string rName = ticketHist.Rows[0]["RequestorName"].ToString();
    string rPhone = ticketHist.Rows[0]["RequestorPhone"].ToString();
    ....
}

Я заметил несколько странных вещей при отладке: 1) Я ставил точки останова на строковые переменные (чтобы увидеть, какие значения были возвращены) во время отладки.После нажатия на кнопку, он проходит прямо через точки останова (я предполагаю, что это означает, что код не «запускает» 2). Я могу удалить весь код из функции _Click, и модал все еще запускается, когда я нажимаю кнопку3) Если я закомментирую модальный код и нажму кнопку, код события _Click срабатывает нормально, и я вижу значения для строковых переменных.Итак, я предполагаю, что проблема в том, как у меня есть модальный набор (я подозреваю, что он связан с использованием TargetControlID="uxTicketHistoryButton").Как мне обойти мой мод, мешающий событию нажатия кнопки?Что я здесь не так делаю?

1 Ответ

0 голосов
/ 22 февраля 2019

Похоже, вы нашли одну из этих ajaxToolkit причуд .Попробуйте это:

Создайте скрытую кнопку:

<asp:button id="hiddenButton" runat="server" style="display:none;" />

Измените свой расширитель на целевую указанную кнопку:

TargetControlID="hiddenButton"

Затем в своем событии _Click покажите модальное:

protected void uxTicketHistoryButton_Click(object sender, EventArgs e)
{
    DataTable ticketHist = _dtMgr.GetContactInfoByName(uxContactDropdownList.SelectedValue);
    string rName = ticketHist.Rows[0]["RequestorName"].ToString();
    string rPhone = ticketHist.Rows[0]["RequestorPhone"].ToString();
    ....

    uxTicketHistoryModal.Show();
}
...