onServerClick在asp.net中不起作用
我有一段代码,当按钮触发时,它将显示一个警报框,并在数据库中执行一些操作,但它不能与onServerClick一起工作 这是代码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
<%@ 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;");
}