onServerClick在asp.net中不起作用

onServerClick在asp.net中不起作用,asp.net,sql,Asp.net,Sql,我有一段代码,当按钮触发时,它将显示一个警报框,并在数据库中执行一些操作,但它不能与onServerClick一起工作 这是代码 <%@ page language="C#" autoeventwireup="true" codeBehind="Default.aspx.cs" inherits="MainPage, App_Web_rlctbjj5" %> <%@ Import Namespace="System.Data" %> <%@ Import Na

我有一段代码,当按钮触发时,它将显示一个警报框,并在数据库中执行一些操作,但它不能与onServerClick一起工作

这是代码

 <%@ page language="C#" autoeventwireup="true" codeBehind="Default.aspx.cs" inherits="MainPage, App_Web_rlctbjj5" %>
 <%@ Import Namespace="System.Data" %>
 <%@ Import Namespace="System.Data.SqlClient" %>
 <script runat="server">
  void ButtonLogin_OnClick(object sender, EventArgs e)
  {
  string script = "alert('" + TextBox2.Text + "');";

 System.Web.UI.ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Test", script, true);
 string connect = ConfigurationManager.ConnectionStrings["TDBSConnectionString"].ConnectionString;

 string query = "SELECT UserID FROM [IBSI].[sec].[Users] WHERE UserName = @1";

 if (query != null)
 {
   using (SqlConnection conn = new SqlConnection(connect))
   {
     using (SqlCommand cmd = new SqlCommand(query, conn))
     {
        SqlParameter p1 = new SqlParameter("@1", TextBox2.Text);
        cmd.Parameters.Add(p1);

        conn.Open();
        SqlDataReader rdr = cmd.ExecuteReader();
         if (rdr.HasRows)
        {
         while (rdr.Read())
        {

         TextBox3.Text=rdr["UserID"].ToString() ;


        }
      }
    }
  }
}
else 
{
  Response.Write("<p>No customer selected</p>"); 
}

}
</script>
使用此HTML

 <button jsid="ButtonLogin" id="ButtonLogin" onServerClick="ButtonLogin_OnClick" runat="server"  dojotype="dijit.form.Button" style="float: right;
                            padding: 5px 15px 0px 0px;">
                           Login</button>

此代码位于表单服务器内部,运行于

Javascript只能在客户端运行,但您已经在服务器端运行的脚本中放置了警报。 您需要做的是从服务器端向按钮添加一个属性来提醒用户,然后将请求发回服务器,最后返回true。您可以在Page_Load方法中添加以下代码段


试过了,但还是一样,我想是因为我使用的dojotype也在调用javascript,它不能与onserverclick同时使用。为什么不使用ASP:button将使用runat服务器本身这意味着我不能使用dojotype。我还没有尝试过使用输入类型,但我认为仍然和我现在使用的一样。
if(!Page.IsPostBack){
   ButtonLogin.Attributes.Add("onclick",
     "alert(
      document.getElementById('" + TextBox2.ClientID + "').value); return true;");
}