这是我想做的事情:单击页面上的一个按钮,这又使(2)事情发生:
这是ASP标记:
<asp:UpdatePanel ID="UpdatePanel2" runat="server" ChildrenAsTriggers="true"
UpdateMode="Always">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnSaveData" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:Panel ID="pnlHidden" runat="server" style="display: none;">
<div>
<h1>Saving...</h1>
</div>
</asp:Panel>
<cc1:ModalPopupExtender ID="modalPopup"
BackgroundCssClass="modalBackground" runat="server"
TargetControlID="btnSaveData" PopupControlID="pnlHidden"
BehaviorID="ShowModal">
</cc1:ModalPopupExtender>
<asp:Button ID="btnSaveData" runat="server" Text="Save Data"
OnClick="btnSaveData_Click" />
</ContentTemplate>
</asp:UpdatePanel>
现在,这是我在C#代码后面的代码:
protected void btnSaveData_Click(object sender, EventArgs e)
{
UpdateUserData(GetLoggedInUser());
modalPopup.Enabled = false;
}
为什么不起作用?ModalPopup可以完美显示,但是btnSaveData_Click事件从不触发。
更新: 第一个建议对我不起作用。我还尝试了您的第二个建议(适用于我的建议)。我这方面的一个小区别是我的模式面板(pnlHidden)上没有按钮-
只是一条消息。我确实尝试过在客户端使用Javascript事件,至少与服务器端事件同时触发。这是个好消息,但我似乎找不到或抓住ModalPopupExtender或其BehaviorID的句柄。这不起作用:
function showOverlay() {
var popup = $find('modalPopup');
popup.show();
}
弹出窗口始终等于null。
最终更新: 这是使该功能正常工作的最终解决方案(请特别注意OnClientClick和OnClick的使用):
<asp:UpdatePanel ID="UpdatePanel2" runat="server" ChildrenAsTriggers="true"
UpdateMode="Always">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnSaveData" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:Panel ID="pnlHidden" runat="server" style="display: none;">
<div>
<h1>Saving...</h1>
</div>
</asp:Panel>
<cc1:ModalPopupExtender ID="modalPopup"
BackgroundCssClass="modalBackground" runat="server"
TargetControlID="hdnField" PopupControlID="pnlHidden"
BehaviorID="ShowModal">
<asp:HiddenField ID="hdnField" runat="server" />
</cc1:ModalPopupExtender>
<asp:Button ID="btnSaveData" runat="server" Text="Save Data"
OnClientClick="showModal();" OnClick="btnSaveData_Click" />
</ContentTemplate>
</asp:UpdatePanel>
使用此Javascript函数:
function showModal() { $find('ShowModal').show(); }
…后面的代码:
protected void btnSaveData_Click(object sender, EventArgs e)
{
UpdateUserData(GetLoggedInUser());
modalPopup.hide();
}
试试这个。
创建一个虚拟的隐藏字段:
<asp:HiddenField ID="hdnField" runat="server" />
在您的Modal Popup声明中设置TargetcontrolID =“ hdnField”。
在您的btnSaveData_Click事件中,执行以下操作:
modalPopup.Show();
问题内容: 似乎是一个简单的问题,但解决其他问题的方法似乎对我没有用。 试图通过单击按钮来触发AJAX请求,但似乎并未触发。 HTML示例 javascript 问题答案: 您拥有的代码在拨弄中工作得很好。初始页面加载后,按钮是否通过AJAX动态呈现? 用 代替
问题内容: 考虑以下代码段: 现在,假设外部div有一个与之关联的活动对象。我如何确保在内部任何地方都不会触发直播? 编辑: 这是要求的JS 单击“ .inner-div”时不应触发此操作 问题答案: 您必须向内部子级添加事件侦听器,并取消事件的传播。 在普通JS中,类似 要么
PayPal Checkout按钮点击本身打开PayPal安全窗口,其余工作正常。当客户点击第一个单选按钮时,我想再次打开PayPal安全窗口,即触发点击PayPal结账按钮。如果按钮本身出现在iframe中,而我无法触发该按钮跨域的单击事件,我该怎么做?有没有办法触发签出按钮的点击? 这里是超文本标记语言代码: 和Javascript代码: 编辑:作为一个工作的例子,我会建议这个网站,但这是有点
我找到了其他相关的问题,但没有一个答案实际上解决了我的问题。这个按钮在IE上很好用,但在Chrome上不行。我尝试移除span元素,将按钮放在任何其他标记之外,但仍然触发了两次。这个temple扩展了一个'base.html'文件,代码位于'main'元素中。 HTML: jQuery:
我在一个页面上有两个GridView,每个GridView都在代码隐藏中被修改为使用RowDataBound进行分组,在RowDataBound中,我为每个分组添加了一个文本框和按钮。该按钮将添加一个单击事件。此外,每个GridView都位于UpdatePanel中。 为了解决RowDataBound项和动态控件的回发问题,我添加了一个简单的响应。重定向到同一页。这段代码可以工作,但按钮会在Gri
我有一个包含几个引导模式的页面,其中包括: 问题是,我有一整行可以点击的表格,比如 模态内容在下面的另一个隐藏表行中,后面跟着下一个可单击的行,依此类推。现在,这一行还包含一个按钮,单击后将转到另一个页面。 我需要整行可点击,以便它打开模式,除非点击了转到其他页面的按钮,然后我需要停止打开模式。 我需要这样的东西 但针对这一点: 我还尝试给TR一个类"modaltoggle",然后用javascr