C# asp.net page.items中的空值
我有一个asp.net页面,后面有C#代码。 我在主页中添加了一个页面项。然后我使用了一些web用户控件。 在其中一种情况下,当我在页面加载中使用此项时。它有正确的值,但当我在同一web控件的另一个私有函数中使用它时,它有空值! 然后我更喜欢使用公共字符串并在其中设置该项的值。但也不起作用C# asp.net page.items中的空值,c#,asp.net,C#,Asp.net,我有一个asp.net页面,后面有C#代码。 我在主页中添加了一个页面项。然后我使用了一些web用户控件。 在其中一种情况下,当我在页面加载中使用此项时。它有正确的值,但当我在同一web控件的另一个私有函数中使用它时,它有空值! 然后我更喜欢使用公共字符串并在其中设置该项的值。但也不起作用 public string ReqID0; string Status0 { get; set; } string Status = ""; string ConnectionString = Config
public string ReqID0;
string Status0 { get; set; }
string Status = "";
string ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection sqlc4;
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ReqID0 = Page.Items["ReqID"].ToString();
ReqIDLbl.Text = ReqID0;
...
第二个功能(方法)是:
Page.Item在每次回发邮件时都会刷新,您必须在每次刷新页面时添加它,并按照
Page\u Load
事件中的代码添加
if (!this.IsPostBack)
{
ReqID0 = Page.Items["ReqID"].ToString();
ReqIDLbl.Text = ReqID0;
--当您的页面进行回发并且在Change\u Status
方法中获得空值时,值的赋值被忽略。尝试改用Viewstate
使用Items属性存储与页面请求具有相同生存期的对象
更新:尝试使用ViewState
if (!this.IsPostBack)
{
ViewState["ReqID"]= ReqIDLbl.Text;
//ReqID0 = Page.Items["ReqID"].ToString();
//ReqIDLbl.Text = ReqID0;
private void Change_Status(string newStatus)
{
//ReqID0=ViewState["ReqID"].ToString();
全局变量是在asp.net中的回发之间创建/初始化的,它们不会保留回发之间的值,因为http是无状态协议,因此需要使用ViewState
public string ReqID0;
string Status0 { get; set; }
string Status = "";
string ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection sqlc4;
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ReqIDLbl.Text = ReqID0;
ReqID0 = ViewState["ReqID0"].ToString();//ViewState
/*In case if the above code doesn't work use
ReqIDLbl.Text = ViewState["ReqID0"].ToString();*/
------
}
//第二功能
private void Change_Status(string newStatus)
{
ReqID0=ViewState["ReqID0"].ToString();
sqlc4 = new SqlConnection(ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "UPDATE Request SET Status=@newStatus WHERE ID=@ReqID";
cmd.Parameters.AddWithValue("@newStatus", newStatus);
cmd.Parameters.AddWithValue("@ReqID", ReqID0);
cmd.Connection = sqlc4;
sqlc4.Open();
cmd.ExecuteNonQuery();
sqlc4.Close();
}
希望这可能会给您答案对象引用未设置为对象的实例。@user3051479没有得到您想要告诉的内容,请详细说明。不工作!错误:ViewState[“ReqID0”].ToString()//对象
private void Change_Status(string newStatus)
{
ReqID0=ViewState["ReqID0"].ToString();
sqlc4 = new SqlConnection(ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "UPDATE Request SET Status=@newStatus WHERE ID=@ReqID";
cmd.Parameters.AddWithValue("@newStatus", newStatus);
cmd.Parameters.AddWithValue("@ReqID", ReqID0);
cmd.Connection = sqlc4;
sqlc4.Open();
cmd.ExecuteNonQuery();
sqlc4.Close();
}