2014-01-09 96 views
0

如何到綁定超鏈接在GridView使用C#在gridview中用c綁定超鏈接#

ASP.NET代碼:

<asp:GridView ID="GridView1" runat="server" onselectedindexchanged="GridView1_SelectedIndexChanged" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"> 
    <Columns> 
     <asp:TemplateField HeaderText="Name"> 
      <ItemTemplate> 
       <asp:HyperLink id="HyperLink2" NavigateUrl="" Text="<%#Eval("pdfname") %>" runat="server"/> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

回答

2

只需使用eval:

<asp:HyperLink id="HyperLink2" NavigateUrl='<%#Eval("YourUrl") %>' Text='<%#Eval("pdfname") %>' runat="server"/> 

如果您的網址是在數據綁定稱爲 「yourURL」 的

如果您需要動態地構建它,你的項目屬性可以使用方法:

<asp:HyperLink id="HyperLink2" NavigateUrl='<%# CreatePageUrl(Container.DataItem)%>' Text='<%#Eval("pdfname") %>' runat="server"/> 

在您的代碼後面定義CreatePageUrl方法。

+0

HyperLink2.NavigateUrl = Page.ResolveUrl(「Pdfhandler.ashx?empid =」+ TextBox8.Text);我需要傳遞這個網址。我應該如何在c#中編寫代碼? – user3168680

+0

是怎麼樣的? 'Text =「<%#Eval(」pdfname「)%>」 runat =「server」/> – realnero

+0

沒有它沒有工作。錯誤「服務器標記不正確」 – user3168680

0

使用OnRowDataBound網格視圖事件查找超鏈接控件,然後綁定你想要的url。例。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      HyperLink hl= (HyperLink)e.Row.findControl("HyperLink2"); 
      hl.NavigateUrl = "Your Url"; 
     } 
    } 
+0

我試過後面的代碼,但仍然沒有顯示網格。 – user3168680

+1

user3168680

+0

This C#code:if(e.RowTypeRowType == DataControlRowType.DataRow) { HyperLink hl =(HyperLink)e.Row.FindControl(「HyperLink2」); hl.NavigateUrl = Page.ResolveUrl(「Pdfhandler.ashx?empid =」+ TextBox8.Text); } – user3168680