2010-01-14 63 views
0

我使用GridViewHyperLink列,我要做到以下幾點:值傳遞

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

我怎樣才能從QueryString參數檢索GN的值,並添加它到HyperLink列?

回答

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