如何在response.redirect(request.rawurl)之前显示我的文本标签
本文关键字:显示 文本标签 我的 rawurl request response redirect | 更新日期: 2023-09-27 17:50:32
我试图在
之前显示我的status_lbl文本标签Response.Redirect (Request.RawUrl);
我已经尝试将延迟时间放在重定向页面功能之前,但仍然不显示status_lbl文本标签。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web.Services;
using System.Web.Script;
using System.Web.Security;
namespace TagNumberWeb
{
public partial class Main : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string CrUserID = Request.QueryString["LogInUser"].ToString();
string Result = Request.QueryString["Result"].ToString();
if (!IsPostBack)
{
if (string.IsNullOrWhiteSpace(CrUserID) || string.IsNullOrWhiteSpace(Result))
{
Response.Redirect("Login Page.aspx");
}
else
{
UserID.Text = Request.QueryString["LogInUser"].ToString();
status_lbl.Visible = false;
GridView1.Visible = false;
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string sONbr = sONbrTextBox.Text;
string SOLine = sOLineTextBox.Text;
string SerialNbr = serialNbrTextBox.Text;
string StatusCode = statusCodeComboBox.Text;
string CrUserID = Request.QueryString["LogInUser"].ToString();
if (string.IsNullOrWhiteSpace(sONbr) || string.IsNullOrWhiteSpace(SOLine) || string.IsNullOrWhiteSpace(StatusCode) || string.IsNullOrEmpty(SerialNbr))
{
status_lbl.Text = "Please fill in all the information.";
status_lbl.Visible = true;
GridView1.Visible = false;
return;
}
else if (string.IsNullOrWhiteSpace(CrUserID))
{
status_lbl.Text = "Please login your account!";
status_lbl.Visible = true;
ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('Please login your account!')</script>");
Response.Redirect("Login Page.aspx");
GridView1.Visible = false;
return;
}
else if (CheckBox1.Checked == true)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["constr_BCSystem"].ToString());
conn.Open();
SqlCommand comm = conn.CreateCommand();
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "usp_TagNumberUpdate";
comm.Parameters.AddWithValue("@sONbr", sONbr);
comm.Parameters.AddWithValue("@SOLine", SOLine);
comm.Parameters.AddWithValue("@SerialNbr", SerialNbr);
comm.Parameters.AddWithValue("@StatusCode", StatusCode);
comm.Parameters.AddWithValue("@CrUserID", CrUserID);
SqlParameter ReturnVal = comm.Parameters.Add("@return", SqlDbType.NVarChar, 200);
ReturnVal.Direction = ParameterDirection.Output;
comm.ExecuteNonQuery();
string val = (string)ReturnVal.Value;
conn.Close();
status_lbl.Text = val;
status_lbl.Visible = true;
Response.Redirect(Request.RawUrl);
}
else
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["constr_BCSystem"].ToString());
conn.Open();
SqlCommand comm = conn.CreateCommand();
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "usp_TagNumberUpdateNoSN";
comm.Parameters.AddWithValue("@sONbr", sONbr);
comm.Parameters.AddWithValue("@SOLine", SOLine);
comm.Parameters.AddWithValue("@StatusCode", StatusCode);
comm.Parameters.AddWithValue("@CrUserID", CrUserID);
SqlParameter ReturnVal = comm.Parameters.Add("@return", SqlDbType.NVarChar, 200);
ReturnVal.Direction = ParameterDirection.Output;
comm.ExecuteNonQuery();
string val = (string)ReturnVal.Value;
conn.Close();
status_lbl.Text = val;
status_lbl.Visible = true;
Response.Redirect(Request.RawUrl);
}
}
这是因为,当您重定向到同一页面时,上下文丢失了。
Page_Load
事件再次被执行。
你应该像下面这样修改你的代码。
将Button1_Click
更改为:
protected void Button1_Click(object sender, EventArgs e)
{
string sONbr = sONbrTextBox.Text;
string SOLine = sOLineTextBox.Text;
string SerialNbr = serialNbrTextBox.Text;
string StatusCode = statusCodeComboBox.Text;
string CrUserID = Request.QueryString["LogInUser"].ToString();
if (string.IsNullOrWhiteSpace(sONbr) || string.IsNullOrWhiteSpace(SOLine) || string.IsNullOrWhiteSpace(StatusCode) || string.IsNullOrEmpty(SerialNbr))
{
status_lbl.Text = "Please fill in all the information.";
status_lbl.Visible = true;
GridView1.Visible = false;
return;
}
else if (string.IsNullOrWhiteSpace(CrUserID))
{
status_lbl.Text = "Please login your account!";
status_lbl.Visible = true;
ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('Please login your account!')</script>");
Response.Redirect("Login Page.aspx");
GridView1.Visible = false;
return;
}
else if (CheckBox1.Checked == true)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["constr_BCSystem"].ToString());
conn.Open();
SqlCommand comm = conn.CreateCommand();
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "usp_TagNumberUpdate";
comm.Parameters.AddWithValue("@sONbr", sONbr);
comm.Parameters.AddWithValue("@SOLine", SOLine);
comm.Parameters.AddWithValue("@SerialNbr", SerialNbr);
comm.Parameters.AddWithValue("@StatusCode", StatusCode);
comm.Parameters.AddWithValue("@CrUserID", CrUserID);
SqlParameter ReturnVal = comm.Parameters.Add("@return", SqlDbType.NVarChar, 200);
ReturnVal.Direction = ParameterDirection.Output;
comm.ExecuteNonQuery();
string val = (string)ReturnVal.Value;
conn.Close();
Response.Redirect(Request.RawUrl+"?status="+val);
}
else
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["constr_BCSystem"].ToString());
conn.Open();
SqlCommand comm = conn.CreateCommand();
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "usp_TagNumberUpdateNoSN";
comm.Parameters.AddWithValue("@sONbr", sONbr);
comm.Parameters.AddWithValue("@SOLine", SOLine);
comm.Parameters.AddWithValue("@StatusCode", StatusCode);
comm.Parameters.AddWithValue("@CrUserID", CrUserID);
SqlParameter ReturnVal = comm.Parameters.Add("@return", SqlDbType.NVarChar, 200);
ReturnVal.Direction = ParameterDirection.Output;
comm.ExecuteNonQuery();
string val = (string)ReturnVal.Value;
conn.Close();
Response.Redirect(Request.RawUrl+"?status="+val);
}
}
和你的Page_Load
应该是:
protected void Page_Load(object sender, EventArgs e)
{
string CrUserID = Request.QueryString["LogInUser"].ToString();
string Result = Request.QueryString["Result"].ToString();
if(Request.RawUrl.Contains("?status"))
{
string val=Request["status"];
status_lbl.Text = val;
status_lbl.Visible = true;
}
if (!IsPostBack)
{
if (string.IsNullOrWhiteSpace(CrUserID) || string.IsNullOrWhiteSpace(Result))
{
Response.Redirect("Login Page.aspx");
}
else
{
UserID.Text = Request.QueryString["LogInUser"].ToString();
status_lbl.Visible = false;
GridView1.Visible = false;
}
}
}