Click here to Skip to main content
Click here to Skip to main content

Tagged as

Go to top

How to create controls dynamically in ASP.NET and retrieve values from it

, 3 Dec 2012
Rate this:
Please Sign up or sign in to vote.
How to create controls dynamically in ASP.NET and retrieve values from it.

Sometimes you may require to create controls dynamically in ASP.NET. Because of the ASP.NET page life cycle, you may loss the created controls on next post back (ASP.NET framework recreate the page on postback). You can resolve this issue by overriding LoadViewState() and SaveViewState() methods. LoadViewState() method restores view-state information from a previous page request that was saved by the SaveViewState method. This method will not executed on the first time. SaveViewState() method saves any server control view-state changes that have occurred since the time the page was posted back to the server. So in SaveViewState() method, store the values you wish to create. And in the LoadViewState() method, retrieve from the viewstate, which returned from SaveViewState() method.

Here is a sample implementation, in this text boxes are created based on the drop down list selection. In the SaveViewState() method, the value of the drop down list stored to the view state, and in the LoadViewState(), controls are recreated using the viewstate information.

private void CreateDynamicControls(int count)
{
    for (int i = 0; i < count; i++)
    {
        var textBox = new TextBox();
        var textboxCell = new TableCell();
        var tableRow = new TableRow();
        tableRow.Cells.Add(textboxCell);
        textboxCell.Controls.Add(textBox);
        tblRecipients.Rows.Add(tableRow);
    }
}

protected override object SaveViewState()
{
    var viewState = new object[2];
    //Saving the dropdownlist value to the View State
    viewState[0] = int.Parse(ddlRecipients.SelectedValue); ;
    viewState[1] = base.SaveViewState();
    return viewState;
}

protected override void LoadViewState(object savedState)
{
    //Getting the dropdown list value from view state.
    if (savedState is object[] && ((object[])savedState).Length == 2)
    {
        var viewState = (object[])savedState;
        var count = int.Parse(viewState[0].ToString());
        CreateDynamicControls(count);
        base.LoadViewState(viewState[1]);
    }
    else
    {
        base.LoadViewState(savedState);
    }
}

protected void cmdSubmit_Click(object sender, EventArgs e)
{
    //To get the textbox value, you can loop throw
    //the table cells and read the textbox controls
    foreach (TableRow row in tblRecipients.Rows)
    {
        var textbox = row.Cells[0].Controls[0] as TextBox;
    }
}

Happy Programming :).

You can find more information about LoadViewState() method and SaveViewState() method from MSDN.

Related content

  1. How to persist checkbox state in gridview while paging
  2. How to prevent duplicate record insertion on Page refresh
  3. ArgumentException – This row already belongs to another table
  4. Accessing server side controls from JavaScript
  5. Selecting controls using LINQ

License

This article, along with any associated source code and files, is licensed under The MIT License

Share

About the Author

Anuraj Parameswaran
Technical Lead
India India
Working as Tech. Lead
 
My blog : dotnetthoughts.net.
You can follow me in twitter : @anuraj
Follow on   Twitter   Google+

Comments and Discussions

 
AnswerHow to create controls dynamically in ASP.NET and retrieve values from it ? PinmemberMember 976096529-Apr-14 0:09 
QuestionNice article. Pinmemberdotnetpickles9-Feb-14 19:28 
GeneralMy vote of 5 PinmemberDebopam Pal18-Nov-13 5:45 
GeneralHelp needed for reterive the selected values of dynamically created combobox while postback on button click Pinmembervenu_thiru13-Nov-13 5:15 
GeneralMy vote of 5 PinmemberBizisto14-Oct-13 3:18 
Questionthank you! PinmemberPhilPhan29-Apr-13 6:00 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web04 | 2.8.140921.1 | Last Updated 3 Dec 2012
Article Copyright 2012 by Anuraj Parameswaran
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid