By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,144 Members | 849 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,144 IT Pros & Developers. It's quick & easy.

datagrid-how to get cell value(hyperlink column)

P: n/a
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.
--
Paul G
Software engineer.
Nov 18 '05 #1
Share this Question
Share on Google+
9 Replies


P: n/a
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

"Paul" <Pa**@discussions.microsoft.com> wrote in message
news:A4**********************************@microsof t.com...
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.
--
Paul G
Software engineer.

Nov 18 '05 #2

P: n/a
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" wrote:
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

"Paul" <Pa**@discussions.microsoft.com> wrote in message
news:A4**********************************@microsof t.com...
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.
--
Paul G
Software engineer.


Nov 18 '05 #3

P: n/a
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" wrote:
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

"Paul" <Pa**@discussions.microsoft.com> wrote in message
news:A4**********************************@microsof t.com...
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.
--
Paul G
Software engineer.


Nov 18 '05 #4

P: n/a
had the wrong column number.

"Greg Burns" wrote:
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

"Paul" <Pa**@discussions.microsoft.com> wrote in message
news:A4**********************************@microsof t.com...
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.
--
Paul G
Software engineer.


Nov 18 '05 #5

P: n/a
No. You have to use it in the ItemDataBound event of you datagrid.

Greg

"Paul" <Pa**@discussions.microsoft.com> wrote in message
news:68**********************************@microsof t.com...
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" wrote:
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

"Paul" <Pa**@discussions.microsoft.com> wrote in message
news:A4**********************************@microsof t.com...
> 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.
> --
> Paul G
> Software engineer.


Nov 18 '05 #6

P: n/a
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.
"Greg Burns" wrote:
No. You have to use it in the ItemDataBound event of you datagrid.

Greg

"Paul" <Pa**@discussions.microsoft.com> wrote in message
news:68**********************************@microsof t.com...
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" wrote:
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

"Paul" <Pa**@discussions.microsoft.com> wrote in message
news:A4**********************************@microsof t.com...
> 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.
> --
> Paul G
> Software engineer.


Nov 18 '05 #7

P: n/a
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.

"Greg Burns" wrote:
No. You have to use it in the ItemDataBound event of you datagrid.

Greg

"Paul" <Pa**@discussions.microsoft.com> wrote in message
news:68**********************************@microsof t.com...
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" wrote:
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

"Paul" <Pa**@discussions.microsoft.com> wrote in message
news:A4**********************************@microsof t.com...
> 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.
> --
> Paul G
> Software engineer.


Nov 18 '05 #8

P: n/a
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
"Paul" <Pa**@discussions.microsoft.com> wrote in message
news:EB**********************************@microsof t.com...
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.

"Greg Burns" wrote:
No. You have to use it in the ItemDataBound event of you datagrid.

Greg

"Paul" <Pa**@discussions.microsoft.com> wrote in message
news:68**********************************@microsof t.com...
> 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" wrote:
>
>> 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
>>
>> "Paul" <Pa**@discussions.microsoft.com> wrote in message
>> news:A4**********************************@microsof t.com...
>> > 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.
>> > --
>> > Paul G
>> > Software engineer.
>>
>>
>>


Nov 18 '05 #9

P: n/a
ok sounds like a good idea. thanks.

"Greg Burns" wrote:
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
"Paul" <Pa**@discussions.microsoft.com> wrote in message
news:EB**********************************@microsof t.com...
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.

"Greg Burns" wrote:
No. You have to use it in the ItemDataBound event of you datagrid.

Greg

"Paul" <Pa**@discussions.microsoft.com> wrote in message
news:68**********************************@microsof t.com...
> 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" wrote:
>
>> 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
>>
>> "Paul" <Pa**@discussions.microsoft.com> wrote in message
>> news:A4**********************************@microsof t.com...
>> > 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.
>> > --
>> > Paul G
>> > Software engineer.
>>
>>
>>


Nov 18 '05 #10

This discussion thread is closed

Replies have been disabled for this discussion.