I am having a problem with loading view state.
I am getting an error Object reference not set to an instance of an object.
Expand|Select|Wrap|Line Numbers
- public partial class CV : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- }
- List<string> controlIdListProfSkils = new List<string>(); //to store controls IDs on each Postback
- int counterProfSkils = 0; //count number of textboxes...
- List<string> controlIdListActvty = new List<string>();
- int counterActvty = 0;
- protected override void LoadViewState(object savedState)
- {
- base.LoadViewState(savedState); //this method works only on postback ...thats the point and before page load
- //before pageload..
- controlIdListProfSkils = (List<string>)ViewState["controlIdListProfSkils"];
- //retrieving stored control ID
- controlIdListActvty = (List<string>)ViewState["controlIdListActvty"];
- foreach (string IdActvty in controlIdListActvty)
- {
- counterActvty++;
- TextBox tbActvty = new TextBox();
- tbActvty.ID = IdActvty;
- tbActvty.Width = 300;
- LiteralControl lineBreak2 = new LiteralControl("<br /> <br />");
- plcHldrActvty.Controls.Add(tbActvty);
- plcHldrActvty.Controls.Add(lineBreak2);
- }
- foreach (string Id in controlIdListProfSkils)
- {
- counterProfSkils++;
- TextBox tbProfSkils = new TextBox();
- tbProfSkils.ID = Id;
- tbProfSkils.Width = 300;
- LiteralControl lineBreak = new LiteralControl("<br /> <br />");
- plcHldrProfSkils.Controls.Add(tbProfSkils);
- plcHldrProfSkils.Controls.Add(lineBreak);
- }
- }
- protected void Button1_Click(object sender, EventArgs e)
- {
- counterProfSkils++;
- TextBox tbProfSkils = new TextBox();
- tbProfSkils.ID = "TextBoxSkils" + counterProfSkils;
- tbProfSkils.Width = 300;
- LiteralControl lineBreak = new LiteralControl("<br /> <br />");
- plcHldrProfSkils.Controls.Add(tbProfSkils);
- plcHldrProfSkils.Controls.Add(lineBreak);
- controlIdListProfSkils.Add(tbProfSkils.ID);
- ViewState["controlIdListProfSkils"] = controlIdListProfSkils; //storing ID of newly generated textboxes in viewstate else textbox will be lost in
- ////Postback...this is the logic
- }
- protected void btnAddActvty_Click(object sender, EventArgs e)
- {
- counterActvty++;
- TextBox tbActvty= new TextBox();
- tbActvty.ID = "TextBoxActvty" + counterActvty;
- tbActvty.Width = 300;
- LiteralControl lineBreak2 = new LiteralControl("<br /> <br />");
- plcHldrActvty.Controls.Add(tbActvty);
- plcHldrActvty.Controls.Add(lineBreak2);
- controlIdListProfSkils.Add(tbActvty.ID);
- ViewState["controlIdListActvty"] = controlIdListActvty; //storing ID of newly generated textboxes in viewstate else textbox will be lost in
- ////Postback...this is the logic
- }
- }
Expand|Select|Wrap|Line Numbers
- <div>
- Professional Skills :
- <asp:TextBox ID="txtProfSkls" runat="server" Width="347px"></asp:TextBox>
- <br />
- <br />
- <asp:Button ID="Button1" runat="server" onclick="Button1_Click"
- Text="Add Professional Skill" />
- <br />
- <br />
- <asp:PlaceHolder ID="plcHldrProfSkils" runat="server"></asp:PlaceHolder>
- <br />
- </div>
- <div>
- Activities :<asp:TextBox ID="txtActvs" runat="server" Width="347px"></asp:TextBox>
- <br />
- <br />
- <asp:Button ID="btnAddActvty" runat="server" onclick="btnAddActvty_Click"
- Text="Add One More Activity" />
- <br />
- <br />
- <asp:PlaceHolder ID="plcHldrActvty" runat="server"></asp:PlaceHolder>
- <br />
- </div>