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