onServerClick не работает в asp.net - PullRequest
0 голосов
/ 21 марта 2012

У меня есть этот код, который при нажатии кнопки отображает окно предупреждения и что-то делает в базе данных, но он не работает с 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>

Этот код находится внутри RUNAT FORM SERVER

1 Ответ

1 голос
/ 21 марта 2012

Javascript может работать только на стороне клиента, но вы поместили предупреждение в скрипт, работающий на стороне сервера. Что нужно сделать, это добавить атрибут к кнопке со стороны сервера, чтобы предупредить пользователя, а затем отправить запрос обратно на сервер с return true в конце. Вы можете добавить следующий фрагмент внутри метода Page_Load.

if(!Page.IsPostBack){
   ButtonLogin.Attributes.Add("onclick",
     "alert(
      document.getElementById('" + TextBox2.ClientID + "').value); return true;");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...