如何在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);
        }
    }

如何在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;
            }
        }
    }