views:

890

answers:

1

Hi,

I'm using GridView with a hyperlink column, and I want to do the following:

DataNavigateUrlFormatString="~/student/group/document/Body.aspx?DID={0}&GN={QueryString("GN")}" HeaderText="View Document" Text="view" />

How I can retrieve the value of GN from the QueryString parameter and add it to the hyperlink column ?

A: 

How important is it to you to do this in the markup? I'm fairly sure you can't do this in the markup with the DataNavigateUrlFields and DataNavigateUrlFormatString, but you can do it in code in the RowDataBound event:

Private Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound

    Dim link As HyperLink
    Dim row As DataRow

    If e.Row.RowType = DataControlRowType.DataRow Then
        'Get the row we are binding to
        row = CType(e.Row.DataItem, DataRowView).Row

        'Find the hyperlink control we want to set the link for
        link = CType(e.Row.Controls(1).Controls(0), HyperLink)

        'Check if the querystring we want to include is missing or empty
        If Request.QueryString("GN") Is Nothing Or Request.QueryString("GN") Is String.Empty Then
            'If there is no querystring then we can only bind to the DID
            link.NavigateUrl = "~/student/group/document/Body.aspx?DID=" & row.Item("DID").ToString

        Else
            'The querystring element is present so include it in the link
            link.NavigateUrl = "~/student/group/document/Body.aspx?DID=" & row.Item("DID").ToString & "&GN=" & Request.QueryString("GN").ToString

        End If

    End If

End Sub
PhilPursglove