如何绕过模式干扰按钮点击事件?

问题描述 投票:0回答:1

在我的ASP.Net Web窗体应用程序中,我有一个按钮,该按钮假设启动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>

我曾经问过一个以前的question关于如何将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)我在调试时在字符串变量上设置了断点(以查看返回的值)。单击按钮后,它会越过断点(我认为这意味着它不会“触发”该代码。)我可以从_Click函数中删除所有代码,并且当我单击按钮时模态仍会启动3)如果我注释掉模态代码并单击按钮,_Click事件代码会触发,我可以看到字符串变量的值。所以,我假设我有模态集的方式(我怀疑它与使用TargetControlID="uxTicketHistoryButton"相关)是问题。如何绕过我的模态干扰按钮点击事件?我在这做错了什么?

c# asp.net button onclick modal-dialog
1个回答
1
投票

看起来你找到了其中一个ajaxToolkit quirks。试试这个:

创建一个隐藏按钮:

<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();
}
© www.soinside.com 2019 - 2024. All rights reserved.