【发布时间】:2015-12-23 15:44:13
【问题描述】:
我在正在生成的表上调用了以下属性。对于每条记录,我都有一个删除按钮,但我想在点击事件中添加一个确认框。这个代码库非常尴尬,因为几乎所有的 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
【问题讨论】:
-
onclick 中没有
return。摆脱javascript: -
return false;将取消 JS 中的点击。 -
在你的 javascript 确认函数中,你可以使用 stopPropagation 告诉 js 你已经处理了这个事件并且它不需要再冒泡了。如果你想停止一个事件的默认行为(即onclick),你可以使用preventDefault。这样,您将触发您选择的事件。
标签: javascript asp.net vb.net