【问题标题】:Call a server side button click function from client side从客户端调用服务器端按钮单击功能
【发布时间】:2021-03-27 10:07:46
【问题描述】:

我有一个这样的按钮:

<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 进行测试,但它仍然没有调用它。当我测试直接点击按钮时,效果很好。

有人知道可能是什么问题?

【问题讨论】:

    标签: javascript c# asp.net webforms


    【解决方案1】:

    您可以更改 JavaScript 函数 ConfirmDelete() 以在被 i 标记单击时返回 true(通过设置全局变量)。

    或添加 另一个 按钮,该按钮不显示或不包含 JavaScript OnClick 来处理回帖。

    例如:

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

    或者你也可以调用 PostBack

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

    【讨论】:

    • 我使用了 __doPostBack 并且成功了!谢谢大佬!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多