簡體   English   中英

后面的Href鏈接代碼

[英]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字符串文字:@“”擺脫'\\'轉義字符(您需要將雙引號引起來)。

您如何編碼

[英]How to you code an <a href="… tag in ASPX to call a simple code behind function?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM