从客户端调用服务器端按钮点击功能
Call a server side button click function from client side
我有一个这样的按钮:
<asp:LinkButton runat="server" ID="btnDeleteActivity" OnClientClick="return ConfirmDelete()" OnClick="btnDeleteActivity_Click">
Delete activity
</asp:LinkButton>
和这个 HTML:
<i class="fa fa-trash" onclick="DeleteActivity()"></i>
在 JS 中我有这个:
function DeleteActivity() {
document.getElementById('<%= btnDeleteActivity.ClientID %>').click();
}
问题是当我点击第 i 个元素时,它只调用按钮的 OnClientClick,而忽略 OnClick . (OnClientClick里面的JS函数就是一个简单的return confirm('some message'))
我尝试删除 OnClientClick 并仅使用按钮上的 OnClick 进行测试,但它仍然没有调用它。当我测试直接点击按钮时,效果很好。
有人知道问题出在哪里吗?
您可以在点击 i
标签时将 JavaScript 函数 ConfirmDelete()
更改为 return true
(通过设置全局变量)。
或添加 另一个 按钮,该按钮不显示或不包含 JavaScript OnClick 以处理 post 返回。
例如:
<asp:LinkButton
style="display:none;"
runat="server"
ID="btnHiddenDeleteActivity"
OnClick="btnDeleteActivity_Click">
</asp:LinkButton>
或者你可以只调用 PostBack
function DeleteActivity() {
__doPostBack('<%= btnDeleteActivity.UniqueID %>','')
}
我有一个这样的按钮:
<asp:LinkButton runat="server" ID="btnDeleteActivity" OnClientClick="return ConfirmDelete()" OnClick="btnDeleteActivity_Click">
Delete activity
</asp:LinkButton>
和这个 HTML:
<i class="fa fa-trash" onclick="DeleteActivity()"></i>
在 JS 中我有这个:
function DeleteActivity() {
document.getElementById('<%= btnDeleteActivity.ClientID %>').click();
}
问题是当我点击第 i 个元素时,它只调用按钮的 OnClientClick,而忽略 OnClick . (OnClientClick里面的JS函数就是一个简单的return confirm('some message'))
我尝试删除 OnClientClick 并仅使用按钮上的 OnClick 进行测试,但它仍然没有调用它。当我测试直接点击按钮时,效果很好。
有人知道问题出在哪里吗?
您可以在点击 i
标签时将 JavaScript 函数 ConfirmDelete()
更改为 return true
(通过设置全局变量)。
或添加 另一个 按钮,该按钮不显示或不包含 JavaScript OnClick 以处理 post 返回。
例如:
<asp:LinkButton
style="display:none;"
runat="server"
ID="btnHiddenDeleteActivity"
OnClick="btnDeleteActivity_Click">
</asp:LinkButton>
或者你可以只调用 PostBack
function DeleteActivity() {
__doPostBack('<%= btnDeleteActivity.UniqueID %>','')
}