开发者

Pass values from QueryString parameter in GridView hyperlink

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

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

How I can retrieve the val开发者_开发知识库ue of GN from the QueryString parameter and add it to the HyperLink column ?


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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜