从GridView超链接中的QueryString参数传递值

时间:2010-01-14 20:11:34

标签: asp.net gridview query-string

我正在使用GridViewHyperLink,我想执行以下操作:

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

如何从QueryString参数中检索GN的值并将其添加到HyperLink列?

1 个答案:

答案 0 :(得分:0)

在标记中执行此操作有多重要?我相当确保你不能在DataNavigateUrlFieldsDataNavigateUrlFormatString的标记中执行此操作,但可以在代码中执行此操作RowDataBound事件:

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