datagrid-how to get cell value(hyperlink column)

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hi I have a data grid with a hyperlink column. the colum has numbers like
00001,000002, ect. Just wondering how to get the text value of the cell as
tempstring = datagrid.Items(rownumber).Cells.Item(column number).Text
returns a blank string. It seems to work ok for the other columns that are
just regular datagrid columns, not hyperlink types.
Thanks.
 
If you had a HyperLink in a template column I would use this:

If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType =
ListItemType.AlternatingItem Then
With CType(e.Item.Cells(column number).FindControl("control name"),
HyperLink)
.ToolTip = "Foobar"
.NavigateUrl = "Foobar"
.Text="Foobar"
End With
End If

But since you are using a HyperLinkColumn, I googled and found this:

If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType =
ListItemType.AlternatingItem Then
CType(grid.Columns(0), HyperLinkColumn).Text = "foobar"
End If

HTH,
Greg
 
thanks for the information. Can this be in the page load routine as I am
getting an error trying to use e.? Thanks Paul.

Greg Burns said:
If you had a HyperLink in a template column I would use this:

If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType =
ListItemType.AlternatingItem Then
With CType(e.Item.Cells(column number).FindControl("control name"),
HyperLink)
.ToolTip = "Foobar"
.NavigateUrl = "Foobar"
.Text="Foobar"
End With
End If

But since you are using a HyperLinkColumn, I googled and found this:

If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType =
ListItemType.AlternatingItem Then
CType(grid.Columns(0), HyperLinkColumn).Text = "foobar"
End If

HTH,
Greg
 
Hi,
I am getting an invalid cast on the following line, put it in a
ItemDataBound event.
CType(datagrid.Columns(0), HyperLinkColumn).Text = "foobar"
just wondering if you may know what is wrong, thanks Paul.

Greg Burns said:
If you had a HyperLink in a template column I would use this:

If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType =
ListItemType.AlternatingItem Then
With CType(e.Item.Cells(column number).FindControl("control name"),
HyperLink)
.ToolTip = "Foobar"
.NavigateUrl = "Foobar"
.Text="Foobar"
End With
End If

But since you are using a HyperLinkColumn, I googled and found this:

If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType =
ListItemType.AlternatingItem Then
CType(grid.Columns(0), HyperLinkColumn).Text = "foobar"
End If

HTH,
Greg
 
had the wrong column number.

Greg Burns said:
If you had a HyperLink in a template column I would use this:

If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType =
ListItemType.AlternatingItem Then
With CType(e.Item.Cells(column number).FindControl("control name"),
HyperLink)
.ToolTip = "Foobar"
.NavigateUrl = "Foobar"
.Text="Foobar"
End With
End If

But since you are using a HyperLinkColumn, I googled and found this:

If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType =
ListItemType.AlternatingItem Then
CType(grid.Columns(0), HyperLinkColumn).Text = "foobar"
End If

HTH,
Greg
 
No. You have to use it in the ItemDataBound event of you datagrid.

Greg

Paul said:
thanks for the information. Can this be in the page load routine as I am
getting an error trying to use e.? Thanks Paul.
 
Hi almost have it working but not quite. The hyperlink column has a
different value for each row, data being returned from a stored procedure
then going into a dataset.
The code below returns the column text field of the hyperlink value but not
the actual cell value. I have

st_temp = CType(dg_searchlog.Columns(6), HyperLinkColumn).DataTextField
and I get Data_Item_Number which is the correct text field selected in the
data grid for that column but I need the cell values for each row out of the
column.
if I use
st_temp = CType(dg_searchlog.Columns(6), HyperLinkColumn).Text
it returns a blank string.
 
Looks like it is not possible to get the individual cell value of the
hyperlink column when using a data text field data source. The .text member
returns the string entered in the text entry of the property builder of the
datagrid. Using this sets the text the same for each row of the hyperlink
column. Setting the text field to a datasource will allow each row (cell
text) to be different for the hyperlink column but there does not seem to be
any method to return the value.
 
Hmm. Sorry to hear that. Hadn't actually tried it.

Personally, I would just switch and make that column a template column. Add
a <asp:hyperlink runat=server id=MyHyperLink /> control and use FindControl
to modify it in ItemDataBound.

Greg
 
ok sounds like a good idea. thanks.

Greg Burns said:
Hmm. Sorry to hear that. Hadn't actually tried it.

Personally, I would just switch and make that column a template column. Add
a <asp:hyperlink runat=server id=MyHyperLink /> control and use FindControl
to modify it in ItemDataBound.

Greg
 
Back
Top