hi
how can i add controls to a gridview at runtime? anyone knows?
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);
}
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.