2013-01-10 55 views
0

我創建了一個datagrid和人們從我的數據庫我的表之一, 然後我想補充一個hyperlink應該從table結合navigateURL到數據網格

<asp:DataGrid ID="DataGrid1" runat="server" DataSourceID="SqlDataSource1"> 
     </asp:DataGrid> 
     <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
      ConnectionString="<%$ ConnectionStrings:holidaysConnectionString %>" 
      SelectCommand="SELECT [Name], [External_Link] FROM [Person]"> 
     </asp:SqlDataSource> 
     <asp:HyperLink ID="hyperlink" runat="server" NavigateUrl='http://www.google.com/<%# Bind("External_Link")%>' Target="_blank">Visit Google</asp:HyperLink> 

這綁定到column不工作可以有人建議我做錯了什麼?

我在tableNameExternal_Hyperlink,每一行(在external_hyerplink柱內)包含擴展到url所以這取決於被點擊了排我會得到www.google.com/extension12列,或www.google.com/extension2 etc.

但是不要認爲我在正確的方向。請給我一些想法來解決我的問題。

回答

2

請嘗試以此爲例:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">   
      <Columns> 
       <asp:BoundField DataField="ProblemID" /> 
       <asp:HyperLinkField DataNavigateUrlFields="ProblemID" DataNavigateUrlFormatString="SmallWindow.aspx?id={0}" 
        DataTextField="Click here" NavigateUrl="SmallWindow.aspx" /> 
       <asp:BoundField DataField="Solution" /> 
      </Columns> 
     </asp:GridView> 

OR

//This event should fire on Row Data Bound 

protected void yourGrid_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
     HyperLink hlControl = new HyperLink(); 
     hlControl.Text = e.Row.Cells[2].Text; //Take back the text (let say you want it in cell of index 2) 
     hlControl.NavigateUrl = "http://www.stackoverflow.com"; 
     e.Row.Cells[2].Controls.Add(hlControl);//index 2 for the example 

編輯

嘗試是這樣的:

<asp:HyperLink ID="HyperLink2" runat=server NavigateUrl='<%#Eval("Company_ID", "CompanyProfile.aspx?ID={0}")%>'><%#Eval("Name")%></asp:HyperLink> 
+0

感謝您的回覆,我發佈了ur代碼,它在設計視圖中顯示,但是當我運行它時,我什麼都看不到,實際上我正在嘗試使用NavigateUrl ='http://www.google.com/ <%#綁定(「External_Link」)%>'功能如果你可以幫忙? – John

+0

看看我的新編輯,做類似的事情,它會工作 –

+0

@John如果它解決了你的問題,請標記爲正確的答案。謝謝! –