hi

how can i add controls to a gridview at runtime? anyone knows?

Recommended Answers

All 7 Replies

I think you can do this in the same way that you would any table-related collection. If you simply want to add a control, you user GridView1.Rows(y).Cells(x).Controls.Add(ControlToAdd) If you want to add a complete row of controls, you can create a table row object at runtime: Dim x as new TableRow and similarly create table cells. Then you will add each table cell to the row: TR.Cells.Add(TC) (TR = table row/TC = table cell). Finally, you would add the row to the gridview. GridView1.Rows.Add(TR) ...assuming you are using VB for coding ;)

hi ChimpusDupus

am using vb.net.. i didnt try your method yet but i will and i'll tell you the results

thank you very much :)

it didnt work i dont know why.. always give me an error out of range whats the problem?

Out of range means you are trying to access an item in a collection that doesn't exist.

Take Cells for example, Cells(0) is the first cell in the Cells collection, if there is only 1 cell in the collection and you try referencing Cells(1) then you get an out of range error.

Finally its done.. PARTIALLY

seems like there is one problem left... can anyone help me with?

i did this:

Dim LB as new Label
Dim TR as new TableRow
Dim TC as new TableCell
Dim DT as new Data.DataTable
Dim DC as new Data.DataColumn

LB.Text = "Hello"
TC.Controls.Add(LB)
TR.Cells.Add(TC)
DC.ColumnName = "Labels"
DT.Columns.Add(DC)
DT.Rows.Add(TR)
GridView.DataSource = DT
GridView.DataBind()


this is the code... but when i click a button to run it the grid view display a column with the name "Labels" as i want but in the cell it only writes this:

System.Web.UI.WebControls.TableRow

instead of displaying the label i created

whats the problem? anyone knows?

all i want is to load that label into the grid view :(

protected void Button1_Click(object sender, EventArgs e)

    {

        DropDownList ddl = new DropDownList();

        ddl.Visible = true;

        ddl.ID = "ddl1";

        ddl.Items.Add("Item1");

        TableCell cell = new TableCell();      

        gv.Rows[0].Cells.Add(cell);

        gv.Rows[0].Cells[0].Controls.Add(ddl);

    }
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.