我有一个 asp.net 页面,我想在触发服务器端事件之前显示一个确认对话框。
但是,当用户单击“确定”按钮时,它不会触发服务器端事件。
我已经尝试了发布的其他问题中提到的所有内容。
我认为问题可能是因为我也在使用更新面板:
代码如下:
<asp:ScriptManager runat="server"></asp:ScriptManager>
<asp:UpdatePanel runat="server" ID="myUpdatePanel" UpdateMode="Conditional">
<ContentTemplate>
<asp:Hyperlink runat="server" ID="InstanceHyperlink" Visible="false"></asp:Hyperlink><asp:Button runat="server" Visible="false" ID="DeleteInstance" OnClick="DeleteInstance_Click" Text="Delete Instance"/>
<asp:Button runat="server" OnClientClick="if ( ! createInstanceConfirm()) { return false; }" OnClick="CreateInstance_Click1" ID="CreateInstance" UseSubmitBehavior="false" Text="Create Instance"></asp:Button>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="CreateInstance" EventName="Click"/>
</Triggers>
</asp:UpdatePanel>
Javascript:
<script type="text/javascript">
function createInstanceConfirm()
{
UIkit.modal.confirm("You are about to create a new instance", function ()
{
return true;
});
}
</script>
最佳答案
您正在返回 false
,但如果您不想取消回发,则必须返回 true
。
所以代替:
OnClientClick="if ( ! createInstanceConfirm()) { return false; }"
您可以使用它(假设该方法返回 true
或 false
):
OnClientClick="return createInstanceConfirm();"
我以前没有用过这个组件,但你可以试试这个:
function createInstanceConfirm()
{
bool confirmed = UIkit.modal.confirm("You are about to create a new instance", function ()
{
return true;
});
return confirmed;
}
关于javascript - OnClientClick = true 不触发服务器端代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33277152/