Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在response.redirect(request.rawurl)之前显示我的文本标签_C#_Asp.net_Visual Studio 2012 - Fatal编程技术网

C# 如何在response.redirect(request.rawurl)之前显示我的文本标签

C# 如何在response.redirect(request.rawurl)之前显示我的文本标签,c#,asp.net,visual-studio-2012,C#,Asp.net,Visual Studio 2012,我正在尝试显示我的状态\u lbl文本标签 重定向(Request.RawUrl) 我尝试过将延迟时间放在重定向页面函数之前,但它仍然没有显示状态文本标签 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.D

我正在尝试显示我的状态\u lbl文本标签

重定向(Request.RawUrl)

我尝试过将延迟时间放在重定向页面函数之前,但它仍然没有显示状态文本标签

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);
        }
    }
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControl;
使用系统数据;
使用System.Data.SqlClient;
使用系统配置;
使用System.Web.Services;
使用System.Web.Script;
使用System.Web.Security;
命名空间TagNumberWeb
{
公共部分类Main:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
string CrUserID=Request.QueryString[“LogInUser”].ToString();
string Result=Request.QueryString[“Result”].ToString();
如果(!IsPostBack)
{
if(string.IsNullOrWhiteSpace(CrUserID)| | string.IsNullOrWhiteSpace(结果))
{
重定向(“Login Page.aspx”);
}
其他的
{                    
UserID.Text=Request.QueryString[“LogInUser”].ToString();
状态_lbl.Visible=false;
GridView1.Visible=false;
}
}
}
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
字符串sONbr=sONbrTextBox.Text;
字符串SOLine=sOLineTextBox.Text;
字符串SerialNbr=serialNbrTextBox.Text;
字符串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=“请填写所有信息。”;
状态_lbl.Visible=真;
GridView1.Visible=false;
返回;
}
else if(string.IsNullOrWhiteSpace(CrUserID))
{
status_lbl.Text=“请登录您的帐户!”;
状态_lbl.Visible=真;
RegisterStartupScript(Page.GetType(),“验证”,“警报('请登录您的帐户!'));
重定向(“Login Page.aspx”);
GridView1.Visible=false;
返回;
}
else if(CheckBox1.Checked==true)
{
SqlConnection conn=新的SqlConnection(ConfigurationManager.ConnectionString[“constr_BCSystem”].ToString());
conn.Open();
SqlCommand comm=conn.CreateCommand();
comm.CommandType=CommandType.StoredProcess;
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=参数Direction.Output;
comm.ExecuteNonQuery();
字符串val=(字符串)ReturnVal.Value;
康涅狄格州关闭();
状态_lbl.Text=val;
状态_lbl.Visible=真;
重定向(Request.RawUrl);
}
其他的
{
SqlConnection conn=新的SqlConnection(ConfigurationManager.ConnectionString[“constr_BCSystem”].ToString());
conn.Open();
SqlCommand comm=conn.CreateCommand();
comm.CommandType=CommandType.StoredProcess;
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=参数Direction.Output;
comm.ExecuteNonQuery();
字符串val=(字符串)ReturnVal.Value;
康涅狄格州关闭();
状态_lbl.Text=val;
状态_lbl.Visible=真;
重定向(Request.RawUrl);
}
}

这是因为,当您重定向到同一页面时,上下文会丢失

Page_Load  
事件再次执行

您应该像下面那样更改代码

按钮1\u单击
更改为:

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);
        }
    }

我使用
Response.Redirect(Request.RawUrl)
在提交数据后清除我的
文本框
字段,因此我需要在重定向页面出现之前显示我的状态lbl文本标签。在中替换为您的代码,但仍然没有文本标签显示。是的,将我的代码替换为您的干净代码,但在提交数据后仍然没有文本标签显示。
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;
            }
        }
    }