Reputation: 653
Well,I got a NullReference exception when I tried to execute out the code. I am just trying to save the current student instance in Viewstate["contents"].And the next time the page is being loaded it will show the previous instance members in the para tag.
//Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
public student student1 = new student();
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
para1.InnerText = "Last entered values were" + ((student)ViewState["contents"]).fname.ToString() + ((student)ViewState["contents"]).lname.ToString();
}
}
[Serializable]
public class student
{
public string fname { get; set; }
public string lname { get; set; }
}
protected void Button1_Click(object sender, EventArgs e)
{
student1.fname = TextBox1.Text;
student1.lname = TextBox2.Text;
}
protected void Page_PreRender(object sender, EventArgs e)
{
ViewState["contents"] = student1;
}
}
Upvotes: 0
Views: 1073
Reputation: 28403
Try like this.
you need to check whether Viewstate is null or not before going to proceed
protected void Page_PreRender(object sender, EventArgs e)
{
ViewState["contents"] = student1;
}
protected void Button1_Click(object sender, EventArgs e)
{
student1.fname = TextBox1.Text;
student1.lname = TextBox2.Text;
ViewState["contents"] = student1;
}
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
if (ViewState["contents"] != null)
{
para1.InnerText = "Last entered values were" + ((student)ViewState["contents"]).fname.ToString() + ((student)ViewState["contents"]).lname.ToString();
}
}
}
Upvotes: 0
Reputation: 4958
public student student1 = new student();
protected void Page_Load(object sender, EventArgs e)
{
}
[Serializable]
public class student
{
public string fname { get; set; }
public string lname { get; set; }
}
protected void Button1_Click(object sender, EventArgs e)
{
student1.fname = TextBox1.Text;
student1.lname = TextBox2.Text;
ViewState["contents"] = student1;
}
protected void Page_PreRender(object sender, EventArgs e)
{
if (IsPostBack)
{
TextBox3.Text = "Last entered values were" + ((student)ViewState["contents"]).fname.ToString() + ((student)ViewState["contents"]).lname.ToString();
}
}
Upvotes: 0
Reputation: 1924
You will have to override the prerender.
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
ViewState["contents"] = student1;
}
Upvotes: 1
Reputation: 9612
You are setting the value in the PreRender
event which called after the Load
event. So, try setting the value before Load
event.
Content page PreInit event.
Master page controls Init event.
Content controls Init event.
Master page Init event.
Content page Init event.
Content page Load event.
Master page Load event.
Master page controls Load event.
Content page controls Load event.
Content page PreRender event.
Master page PreRender event.
Master page controls PreRender event.
Content page controls PreRender event.
Master page controls Unload event.
Content page controls Unload event.
Master page Unload event.
Content page Unload event.
Upvotes: 0