[英]Href Link Code Behind
我正在嘗試將一個鏈接添加為Product.Text的一部分,但我在這里確實犯錯了,請在后面的C-Sharp代碼中執行此操作。
tcProduct.Text = "<div class=\"productname\">" + "<a class=\"productnameLink\" href=\"item.Product.Url\">" + item.Product.Name + "</a>" + "</div>";
反斜杠開始使我感到困惑。 我想我應該使用.NET超鏈接而不是普通的超鏈接?
我已經嘗試過了,但是沒有添加超鏈接;
HyperLink productNameLink = new HyperLink();
productNameLink.Text = "<div class=\"productname\">" + item.Product.Name + "</div>";
productNameLink.NavigateUrl = item.Product.Url.ToString();
productNameLink.CssClass = "prodNameLink";
tcProduct.Controls.Add(productNameLink);
純字符串格式應該可以解決問題:
tcProduct.Text = string.Format("<div class=\"productname\"><a class=\"productnameLink\" href=\"{0}\">{1}</a></div>",
item.Product.Url, item.Product.Name);
但是,您確實最好使用一個Repeater,它正是用於此類事情。 標記:
<asp:Repeater ID="rptProducts" runat="server">
<HeaderTemplate><h1>Products</h1></HeaderTemplate>
<ItemTemplate>
<div class="productname"><a class="productnameLink" href="<%# Eval("Url") %>"><%# Eval("Name") %></a></div>
</ItemTemplate>
</asp:Repeater>
並在后面的代碼中:
rptProducts.DataSource = arrProducts;
rptProducts.DataBind();
其中arrProducts
是您的產品的集合。
我過去經常這樣做的是ASP Literal。
<asp:Literal ID="Literal2" runat="server"></asp:Literal>
然后在代碼中設置為
Literal2.Text = "<a class='productnameLink' href=" + item.Product.Url + ">" + item.Product.Name + "</a>"
您可以使用面板控件將其渲染為div 。
var link = new HyperLink
{
Text = item.Product.Name,
NavigateUrl = item.Product.Url.ToString(),
CssClass = "prodNameLink"
};
var panel = new Panel
{
CssClass = "productname"
};
panel.Controls.Add(link);
tcProduct.Controls.Add(panel);
<div class="productname">
<a class="prodNameLink" href="http://www.google.com">Google</a>
</div>
Text屬性應該僅是文本。
有很多方法可以滿足您的需要,但是如果您要堅持使用html字符串,可以使用:
tcProduct.Controls.Add(new HtmlGenericControl
{
InnerHtml = string.Format(@"<div class=""productname""><a class=""productnameLink"" href=""{0}"">{1}</a></div>", item.Product.Url, item.Product.Name )
});
另外,您可以使用averbatim字符串文字:@“”擺脫'\\'轉義字符(您需要將雙引號引起來)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.