|
Hi,
In the RowDataBound event, this is how I refer to a particular column (i.e. using the index number).
e.Row.Cells(7).Text = TotalB1
How is it possible to refer to the column name instead of the index number i.e.:
e.Row.Cells("B1").Text = TotalB1
Thanks
|
|
|
|
|
Hi there,
The Cells collection is of the TableCellCollection type which only supports the indexer with the int as parameter. If you don't want to remember the column index, you can use the Columns collection of the GridView control, and specify the index value based on the column header, then you can apply the index value in the Cells collection. Another option is that you can place a Label control in the column, then in the RowDataBound event handler you can use the FindControl method to get reference to the label, and you can assign the value to the Text property of the label instead of the column.
|
|
|
|
|
Hi minhpc_bk,
Could you spare a code example of what you are describing if you get a chance?
thanks.
|
|
|
|
|
Hi Tanya,
The sample code look something like:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataControlField column = GetColumnByHeaderText(GridView1.Columns, "ColumnHeaderText");
e.Row.Cells[GridView1.Columns.IndexOf(column)].Text = "some text";
Label label = e.Row.FindControl("Label1") as Label;
label.Text = "some text";
}
}
private DataControlField GetColumnByHeaderText(DataControlFieldCollection columns, string headerText)
{
IEnumerator enumerator = columns.GetEnumerator();
while (enumerator.MoveNext())
{
DataControlField column = enumerator.Current as DataControlField;
if (column.HeaderText == headerText)
return column;
}
return null;
}
|
|
|
|
|
|
Hi ,
I need to add values from textbox or listbox which are place outside the grid.When I clicked on add button all the values of textbox and listbox should be displayed in Datagrid.
Please help me as soon as poosible.
|
|
|
|
|
Save all the values of the textboxes and list boxes in a dataset using a data adapter and just tell the datagrid the datasource i.e.
OleDbDataAdapter da = new OleDbDataAdapter(ADD THE SOURCE WHERE U SAVED THE VALUES);
da.Fill(ds);
DataGrid1.DataSource = ds.Tables[0];
DataGrid1.DataBind();
Hope I helped
If only they could see what I see in my mind
|
|
|
|
|
Sorry still not getting...........
|
|
|
|
|
where did u save the values ? can u paste the code here
If only they could see what I see in my mind
|
|
|
|
|
Actually I am trying to save the values in Arraylist for displaying data in Datagrid.
But now getting that????
|
|
|
|
|
Well the easiest thing u can do is save those values in a temporary database and read them from there using OleDbCommand, i.e. saving those values in the command and then follow the rest of the steps I mentioned earlier. The command is the source now.
If only they could see what I see in my mind
|
|
|
|
|
Hello,
I have this code
System.Web.UI.WebControls.TextBox textpersid = new System.Web.UI.WebControls.TextBox();
textpersid = (System.Web.UI.WebControls.TextBox)e.Item.Cells[1].Controls[0];
and I always get the error:
Exception Details: System.InvalidCastException: Unable to cast object of type 'System.Web.UI.WebControls.DataGridLinkButton' to type 'System.Web.UI.WebControls.TextBox'.
Can someone help me on this?
Thanks alot,
Commickey
|
|
|
|
|
In editItemTemplate there is linkbutton or textbox.If there is a linkbutton then change it to textbox.
|
|
|
|
|
Hello, the only option in the edititemtemplate is a linkbutton or push button... so how do I change this to a textbox?
Thanks alot,
Commickey
|
|
|
|
|
linkbutton or push button is your project options or you are saying only two two controls are available in the edititemtemplate.If your case is latter one then you can check it again , there is checkbox, button, image,label,textbox controls etc available in the edititemtemplate.You can use any of them
|
|
|
|
|
hello,
thanks alot, I am using Visual studio 2003 and it has only two controls in the edititemtemplate which are link button and push button...
So how u I change this to a textbox?
|
|
|
|
|
How do I reach the edititemtemplate in visual studio 2003?
|
|
|
|
|
Just go in HTML and in that put textbox inside.For ex:
<asp:templatecolumn>
<itemtemplate>
<asp:textbox textmode="SingleLine">
I hope this will help u.
|
|
|
|
|
Hello, I couldn'see ur example.... can u please repost it?
Thanks in advance,
commickey
|
|
|
|
|
hi
I am trying that but its not working.U just need to go to the HTML code and add <asp:templatecolumn>
Inside this u will see <itemtemplate>and inside this u will find <asp:textbox>I hope now u can c and also u got help from me.
Thanks and Regards.
|
|
|
|
|
hi
I am trying that but its not working.U just need to go to the HTML code and add
Commickey wrote: <asp:templatecolumn>
<asp:templatecolumn>
Inside this u will see
Commickey wrote: <itemtemplate>
<itemtemplate>and inside this u will find
Commickey wrote: <asp:textbox>
<asp:textbox>I hope now u can c and also u got help from me.
Thanks and Regards.
|
|
|
|
|
Hi
Try this one....
textpersid = (System.Web.UI.WebControls.TextBox)e.Item.Cells[0].Controls[0];
or
textpersid = (System.Web.UI.WebControls.TextBox)e.Item.Cells[0].Controls[1];
Abhijeet
|
|
|
|
|
Hello,
I tried ur suggestion but am still gettin the same error message....
Any further help?
|
|
|
|
|
Just go in HTML and in that put textbox inside.For ex:
<asp:templatecolumn>
<itemtemplate>
<asp:textbox textmode="SingleLine">
I hope this will help u.
|
|
|
|
|
Just go in HTML and in that put textbox inside.For ex:
<asp:TemplateColumn>
<itemtemplate>
<asp:textbox textmode="SingleLine">
I hope this will help u.
|
|
|
|