Monday, December 13, 2021

Getting the text of a GridView HyperLink Bound Field

It's quite common to do some extra processing of data during a GridView's Row_DataBound event. You can normally capture the value of the GridView cell like this, which would capture the value of the 3rd column in the grid (row count is 0 based). 

If e.Row.RowType = DataControlRowType.DataRow Then

    Dim Value as String = CType(e.row.cells(2).Text, String)

    'some manipulation of cell data, such as formatting, etc.

    e.row.cells(2).Text = NewValue

End If

This works well if the field is configured as a BoundField: 

<asp:BoundField DataField="DataBaseFieldValue" HeaderText="Field Name" />

But if the field is configured like this, as a HyperLink field, then you must get to its value differently:

<asp:HyperLinkField DataTextField="Symbol" HeaderText="Symbol" DataNavigateUrlFields="StockID"  DataNavigateUrlFormatString="EditStock.aspx?id={0}&ref=pp" SortExpression="s.symbol" />

This assumes that the field you're looking for is the first column of the GridView control. 

If e.Row.RowType = DataControlRowType.DataRow Then

    Dim HyperLinkText as String = DirectCast(e.Row.Cells(0).Controls(0), HyperLink).Text

    Dim HypLinkURL as string = DirectCast(e.Row.Cells(0).Controls(0), HyperLink).NavigateUrl

    'Do something with the values

End If

No comments:

Post a Comment

Thanks for the comment. Will get back to you as soon as convenient, if necessary.

Top Five Consumer Cyber Security FAQs

By Equifax Business, technology, environmental and economic changes are a part of life, and they are coming faster all the time. All of thes...