Asp.net Update paneel会阻止某些错误消息的执行

Asp.net Update paneel会阻止某些错误消息的执行,asp.net,mysql,vb.net,Asp.net,Mysql,Vb.net,我有一个asp页面,其中有1个更新面板,2个面板由2个按钮控制,如果您单击第一个按钮,第一个面板将显示,第二个面板将隐藏,如果您单击第二个按钮,第二个面板也会发生同样的情况。它工作正常,没有问题 问题从第二个面板开始,我有另一个更新面板,负责打印错误消息。仅检查输入长度的消息工作正常,但涉及查询数据库以检查id有效性的消息未被打印 我认为查询是问题所在,我在一个没有更新面板的单独页面中尝试了它们,它们工作正常。问题出在更新面板的某个地方。我真的不知道在哪里。如果你能帮助我,我将不胜感激 这是前端

我有一个asp页面,其中有1个更新面板,2个面板由2个按钮控制,如果您单击第一个按钮,第一个面板将显示,第二个面板将隐藏,如果您单击第二个按钮,第二个面板也会发生同样的情况。它工作正常,没有问题

问题从第二个面板开始,我有另一个更新面板,负责打印错误消息。仅检查输入长度的消息工作正常,但涉及查询数据库以检查id有效性的消息未被打印

我认为查询是问题所在,我在一个没有更新面板的单独页面中尝试了它们,它们工作正常。问题出在更新面板的某个地方。我真的不知道在哪里。如果你能帮助我,我将不胜感激

这是前端代码(我省略了一些无关紧要的细节):


当您想从更新面板内部执行脚本时-不要使用

Page.ClientScript.RegisterStartupScript
使用

相反


Ref:

您知道吗
RegularExpressionValidator
可以用来验证输入的长度,这样您就不必手动在代码隐藏中检查它了?只需设置
ValidationExpression=“^\d{5,9}$”
,这意味着输入必须是长度在5到9个字符之间的数字。
 Protected Sub Button5_Click(ByVal sender As Object, ByVal e As EventArgs) Handles  Button5.Click
If IdNo.Text = "" Then
    Panel1.Visible = False
    Panel2.Visible = True
    errorEm.Visible = True
ElseIf IdNo.Text.Length > 9 Then
    Panel1.Visible = False
    Panel2.Visible = True
    errorLenght.Visible = True
Else

    Try 'everything that comes here does not work'
        myconn.Open()
        Dim stquery As String = "SELECT * from account WHERE user_id= @id"
        Dim smd = New MySqlCommand(stquery, myconn)
        smd.Parameters.AddWithValue("@id", Convert.ToInt32(IdNo.Text))
        Dim myreader = smd.ExecuteReader()
        If Not myreader.HasRows Then
            Panel1.Visible = False
            Panel2.Visible = True
            errorUser.Visible = True
            myconn.Close()
            Return
        Else

            Panel1.Visible = False
            Panel2.Visible = True
            myreader.Read()
            Dim ErrorMessage As String = "alert('User has been found');"
            Page.ClientScript.RegisterStartupScript(Me.GetType(), "ErrorAlert", ErrorMessage, True)


            myconn.Close()
        End If
        myconn.Close()
    Catch ex As Exception
        Dim ErrorMessage As String = "alert('" & ex.Message.ToString() & "');"
        Page.ClientScript.RegisterStartupScript(Me.GetType(), "ErrorAlert", ErrorMessage, True)
        myconn.Close()
    End Try
End If
End Sub
Page.ClientScript.RegisterStartupScript
ClientScriptManager.RegisterStartupScript