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

如何基于服务器端JavaScript确认返回停止单击事件?,javascript,asp.net,vb.net,Javascript,Asp.net,Vb.net,我对正在生成的表调用以下属性。对于每条记录,我都有一个删除按钮,但我想在单击事件中添加一个确认框。这个代码库相当尴尬,因为几乎所有的UI都是在服务器端生成的,我没有太多正确的使用web表单最佳实践的方法,例如明确分开的表单和代码 我决定将确认框的JavaScript添加到CssButton的属性中……如果用户在生成的客户端确认框上单击“取消”,是否有方法停止单击过程。我是否可以通过某种方式将javascript传递给bool,然后将其返回并将AddClickHandler基于该bool?提前感谢

我对正在生成的表调用以下属性。对于每条记录,我都有一个删除按钮,但我想在单击事件中添加一个确认框。这个代码库相当尴尬,因为几乎所有的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

onclick中没有
返回
。去掉
javascript:
返回false
将取消在JS中的单击。在javascript确认函数中,您可以使用StopperPagation告诉JS您已经处理了事件,不需要再冒泡了。如果要停止事件的默认行为(即onclick),可以使用preventDefault。这样,您将触发您选择的事件。