如何基于服务器端JavaScript确认返回来停止点击事件

How to stop a click event based on a server side JavaScript confirmation return?

本文关键字:事件 回来 返回 何基于 服务器端 JavaScript 确认      更新时间:2023-09-26

我在生成的表中调用了以下属性。对于每条记录,我都有一个删除按钮,但我想在点击事件中添加一个确认框。这个代码库非常尴尬,因为几乎所有的UI都是在服务器端生成的,而且我没有太多正确使用web表单的最佳实践,比如明确分离的表单和代码。

我决定将确认框的JavaScript添加到CssButton的属性中。。。如果用户在生成的客户端确认框中单击"取消",是否有方法停止单击过程。我能以某种方式给javascript传递一个bool,然后把它拿出来,并把我的AddClickHandler建立在那个bool上吗?提前感谢您的帮助!

Private mDeleteButton As CssButton
Private ReadOnly Property DeleteButton() As CssButton
    Get
        If mDeleteButton Is Nothing Then
            mDeleteButton = New CssButton(ButtonImage.Cancel, "Delete")
            With mDeleteButton
                .Attributes.Add("onclick", "javascript: (!confirm('Delete this future transaction?'))")
                .AddClickHandler(New EventHandler(AddressOf DeleteButton_Click))
                .CausesValidation = False
                .ID = String.Concat(Me.ID, "DeleteButton")
            End With
        End If
        Return mDeleteButton
    End Get
End Property

按以下方式更改代码。通过在属性中添加实际的条件语句和基于条件的结果/操作。

Private mDeleteButton As CssButton
Private ReadOnly Property DeleteButton() As CssButton
Get
    If mDeleteButton Is Nothing Then
        mDeleteButton = New CssButton(ButtonImage.Cancel, "Delete")
        With mDeleteButton
            .Attributes.Add("onclick", "javascript: if(!confirm('Delete this future transaction?')) { return false; } else { //DO SOMETHING }")
            .AddClickHandler(New EventHandler(AddressOf DeleteButton_Click))
            .CausesValidation = False
            .ID = String.Concat(Me.ID, "DeleteButton")
        End With
    End If
    Return mDeleteButton
End Get
End Property