我有这样的代码,当按钮触发它时会显示一个警告框并在数据库中执行某些操作,但它不适用于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
中答案 0 :(得分:1)
Javascript只能在客户端运行,但您已在服务器端运行的脚本中放置警报。
您需要做的是从服务器端向按钮添加属性以提醒用户,然后在最后将请求发回到服务器return true
。您可以在Page_Load
方法中添加以下代码段。
if(!Page.IsPostBack){
ButtonLogin.Attributes.Add("onclick",
"alert(
document.getElementById('" + TextBox2.ClientID + "').value); return true;");
}