简体   繁体   English

调用服务器端按钮从客户端单击 function

[英]Call a server side button click function from client side

I have a button like this:我有一个这样的按钮:

<asp:LinkButton runat="server" ID="btnDeleteActivity" OnClientClick="return ConfirmDelete()" OnClick="btnDeleteActivity_Click">
     Delete activity
</asp:LinkButton>

and this HTML:还有这个 HTML:

<i class="fa fa-trash" onclick="DeleteActivity()"></i>

in JS I have this:在 JS 我有这个:

function DeleteActivity() {
   document.getElementById('<%= btnDeleteActivity.ClientID %>').click();
}

The problem is that when I click on the i element, it calls only the OnClientClick of the button, and ignores the OnClick .问题是当我点击 i 元素时,它只调用按钮的 OnClientClick而忽略 OnClick (the JS function inside OnClientClick is just a simple return confirm('some message')) (OnClientClick里面的JS function只是一个简单的return confirm('some message'))

I tried to delete the OnClientClick and test only with the OnClick on the button, but it still not calling it.我试图删除 OnClientClick 并仅使用按钮上的 OnClick 进行测试,但它仍然没有调用它。 When I test clicking directly on the button, it works perfectly.当我测试直接点击按钮时,它工作得很好。

Someone have an idea of what can be the problem?有人知道可能是什么问题?

You can either alter JavaScript function ConfirmDelete() to return true when clicked by the i tag (by setting a global variable).您可以更改 JavaScript function ConfirmDelete()以在i标签单击时返回true (通过设置全局变量)。

Or add another button which doesn't display or contain a JavaScript OnClick to handle the post back.或者添加另一个不显示或不包含 JavaScript OnClick 的按钮来处理回发。

For example:例如:

<asp:LinkButton
    style="display:none;"
    runat="server"
    ID="btnHiddenDeleteActivity" 
    OnClick="btnDeleteActivity_Click">
</asp:LinkButton>

Alternatively you can just call PostBack或者,您可以只调用 PostBack

function DeleteActivity() {
   __doPostBack('<%= btnDeleteActivity.UniqueID %>','')
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM