datagrid-how to get cell value(hyperlink column)

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.
 
G

Greg Burns

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
 
G

Guest

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
 
G

Guest

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
 
G

Guest

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
 
G

Greg Burns

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.
 
G

Guest

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.
 
G

Guest

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.
 
G

Greg Burns

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
 
G

Guest

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,825
Latest member
VernonQuy6

Latest Threads

Top