如何避免模态干扰按钮单击事件?

时间:2019-02-22 14:58:30

标签: c# asp.net button onclick modal-dialog

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

1 个答案:

答案 0 :(得分:1)

好像您找到了var obj2 = Object.assign({}, obj1) quirks之一。试试这个:

创建一个隐藏按钮:

ajaxToolkit

将您的Extender更改为目标按钮:

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

然后在_Click事件中,显示模式:

TargetControlID="hiddenButton"