我在gridpanel中放了一个gridview。 当用户del行会导致FK错误时,将不会显示任何消息和错误页面,因为asyncpostback updatepanel。
当e.AffectedRows = 0时,我放置了一个ScriptManager.RegisterStartupScript来显示GridView2_RowDeleted事件中的一些消息。但它也不起作用(没有任何反应)。我想在GridView2_RowDeleted事件之前可能会发生SQL错误。
那么,有人可以给我一些这种情况的理想吗?我需要的是在发生SQL错误时显示alert或lable.text等消息(updatepanel中的gridview)
现在这里是GridView2_RowDeleted的代码
Private Sub GridView2_RowDeleted(sender As Object, e As GridViewDeletedEventArgs) Handles GridView2.RowDeleted
If e.AffectedRows = 0 Then
Label14.Text = "Can't Del because still material in this storage!"
ScriptManager.RegisterStartupScript(Me.UpdatePanel2, Me.UpdatePanel2.GetType(), "mykey", "alert('Error:" & "Can't Del because still material in this storage!" & "');", True)
UpdatePanel2.Update()
End If
End Sub
答案 0 :(得分:-1)
谢谢大家回复我。 由于两个问题,警报不显示 首先:e.message.tostring可能存在一些影响警报消息字符串的单词。
第二:我们需要" e.ExceptionHandled = True"自己犯错误
我在下面找到答案。
Private Sub GridView1_RowDeleted(sender As Object, e As GridViewDeletedEventArgs) Handles GridView1.RowDeleted
If (e.Exception Is Nothing) Then
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "alert", "alert('del 1 rec');", True)
GridView1.SelectedIndex = -1
Else
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "alert", "alert('Error:del 0 rec');", True)
e.ExceptionHandled = True
End If
End Sub