2017-05-28 63 views
0

我試圖改變一個asp超鏈接NavigateUrl在Repeater控制內的Url。我用下面的代碼填寫我的中繼器從數據庫:編輯使用c中繼器內部的超鏈接#

在.cs文件

 SqlConnection con3 = new SqlConnection("my connection"); 
     string strcon = "select * from companydata"; 
     cmd = new SqlCommand(strcon, con3); 
     da = new SqlDataAdapter(cmd); 
     ds = new DataSet(); 
     da.Fill(ds, "company"); 
     Repeater1.DataSource = ds; 
     Repeater1.DataBind(); 
     con3.Close(); 
     con3.Dispose(); 

在.aspx文件<asp:Repeater ID="Repeater1" runat="server"><ItemTemplate> <asp:HyperLink ID="companyid" runat="server"><%#Eval("companyname") %></asp:HyperLink> //i need to add NavigateUrl for HyperLink using loop. </ItemTemplate></asp:Repeater>

我的輸出(使用中繼器)看起來像這樣

  • 微軟
  • Google
  • Yahoo
  • Facebook的
  • 的Adobe

現在我添加一些額外的代碼來填充NavigateUrl以超鏈接轉發器控件內部

foreach (RepeaterItem item in Repeater1.Items) 
     { 
      HyperLink hplink = item.FindControl("companyid") as HyperLink; 
      hplink.NavigateUrl = "https://www.example.com/company/"; 
     } 

現在的問題是如何添加內NavigateUrl超鏈接的文本一樣www.example .com/company/Microsoft或www.example.com/company/Google,這裏MicrosoftGoogle是鏈接的文本。在此先感謝,抱歉我的英文不好。

回答

0

你只需要Concat的超鏈接的文本與navigateurl:

foreach (RepeaterItem item in Repeater1.Items) 
    { 
     HyperLink hplink = item.FindControl("companyid") as HyperLink; 
     hplink.NavigateUrl = "https://www.example.com/company/" + hplink.Text; 
    } 
+0

我已經習慣hplink.Text但它不工作,回到同一條鏈路www.example.com/company/ –

+0

將一個調試點在** hplink.NavigateUrl **並檢查hplink的值。我相信你會找到不工作或張貼你能看到的價值的原因,以便我可以幫助你 –