onServerClick在asp.net中不起作用

时间:2012-03-21 07:29:25

标签: asp.net sql

我有这样的代码,当按钮触发它时会显示一个警告框并在数据库中执行某些操作,但它不适用于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>

此代码位于FORM SERVER RUNAT

1 个答案:

答案 0 :(得分:1)

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

if(!Page.IsPostBack){
   ButtonLogin.Attributes.Add("onclick",
     "alert(
      document.getElementById('" + TextBox2.ClientID + "').value); return true;");
}