How to create dynamic Gridview?

Showing Answers 1 - 8 of 8 Answers

Chandra kumar

  • May 26th, 2006
 

Many times we have the requirement where we have to create columns dynamically.
This article describes you about the dynamic loading of data using the DataTable as the datasource.

Details of the Grid

Let?s have a look at the code to understand better.

 

Create a gridview in the page,

  1. Drag and drop the GridView on to the page

Or

  1. Manually type GridView definition in the page.

public partial class _Default : System.Web.UI.Page

{

    #region constants

    const string NAME = "NAME";

    const string ID = "ID";

    #endregion

 

    protected void Page_Load(object sender, EventArgs e)

    {

        loadDynamicGrid();

    }

 

    private void loadDynamicGrid()

    {

        #region Code for preparing the DataTable

 

        //Create an instance of DataTable

        DataTable dt = new DataTable();

       

        //Create an ID column for adding to the Datatable

        DataColumn dcol = new DataColumn(ID ,typeof(System.Int32));

        dcol.AutoIncrement = true;

        dt.Columns.Add(dcol);

 

        //Create an ID column for adding to the Datatable

        dcol = new DataColumn(NAME, typeof(System.String));

        dt.Columns.Add(dcol);

 

        //Now add data for dynamic columns

        //As the first column is auto-increment, we do not have to add any thing.

        //Let's add some data to the second column.

        for (int nIndex = 0; nIndex < 10; nIndex++)

        {

            //Create a new row

            DataRow drow = dt.NewRow();

 

            //Initialize the row data.

            drow[NAME] = "Row-" + Convert.ToString((nIndex + 1));

 

            //Add the row to the datatable.

            dt.Rows.Add(drow);

        }

        #endregion

 

        //Iterate through the columns of the datatable to set the data bound field dynamically.

        foreach (DataColumn col in dt.Columns)

        {

            //Declare the bound field and allocate memory for the bound field.

            BoundField bfield = new BoundField();

 

            //Initalize the DataField value.

            bfield.DataField = col.ColumnName;

 

            //Initialize the HeaderText field value.

            bfield.HeaderText = col.ColumnName;

 

            //Add the newly created bound field to the GridView.

            GrdDynamic.Columns.Add(bfield);

        }

 

        //Initialize the DataSource

        GrdDynamic.DataSource = dt;

 

        //Bind the datatable with the GridView.

        GrdDynamic.DataBind();

    }

}

  Was this answer useful?  Yes

Imran Parvez

  • Aug 23rd, 2006
 

using JavaScript

  Was this answer useful?  Yes

Raj

  • Dec 9th, 2006
 

How about something like

GridView gv = new GridView();

//set all gv's properties

Page.Controls.Add(gv);

Even better, you can have runat=server div and then add this control to the div. This will ensure that this grid appears at a fixed place.

  Was this answer useful?  Yes

TestPilot

  • Apr 19th, 2007
 

Only the first answer appropriate. The question is how to create a dynamically grid view which means populate the grid view dynamically.

  Was this answer useful?  Yes

Give your answer:

If you think the above answer is not correct, Please select a reason and add your answer below.

 

Related Answered Questions

 

Related Open Questions