HTML文本编写器

时间:2010-05-14 06:48:52

标签: c# asp.net

在我的项目中,我创建了一个继承自label的自定义控件。 我的目标是在此添加2个链接。我需要使用相同的标签来渲染这两个链接。我尝试了下面的代码只有第一个链接加载,而不是第二个。请帮助

我的示例代码看起来像

writer.RenderBeginTag(HtmlTextWriterTag.Link);
writer.AddAttribute(HtmlTextWriterAttribute.Href, string.Concat(Path 1));
writer.AddAttribute(HtmlTextWriterAttribute.Type, "text/css");
writer.AddAttribute(HtmlTextWriterAttribute.Rel, "stylesheet");
writer.RenderEndTag();

writer.RenderBeginTag(HtmlTextWriterTag.Link);
writer.AddAttribute(HtmlTextWriterAttribute.Href, string.Concat(Path 2 ));
writer.AddAttribute(HtmlTextWriterAttribute.Type, "text/css");
writer.AddAttribute(HtmlTextWriterAttribute.Rel, "stylesheet");
writer.RenderEndTag();

2 个答案:

答案 0 :(得分:3)

您需要在呈现html标记之前添加属性。您为代码中的第一个链接定义的属性实际上被分配给第二个链接标记。第一个链接标记仍为空。

writer.AddAttribute(HtmlTextWriterAttribute.Href, string.Concat(Path 1));
writer.AddAttribute(HtmlTextWriterAttribute.Type, "text/css");
writer.AddAttribute(HtmlTextWriterAttribute.Rel, "stylesheet");
writer.RenderBeginTag(HtmlTextWriterTag.Link);

writer.RenderEndTag();

writer.AddAttribute(HtmlTextWriterAttribute.Href, string.Concat(Path 2 ));
writer.AddAttribute(HtmlTextWriterAttribute.Type, "text/css");
writer.AddAttribute(HtmlTextWriterAttribute.Rel, "stylesheet");
writer.RenderBeginTag(HtmlTextWriterTag.Link);

writer.RenderEndTag();

答案 1 :(得分:0)

这是给你的代码。


public class MyLabel : Label
{

    protected override void OnInit(EventArgs e)
        {
            this.InitLinkButton();
            base.OnInit(e);       

        }
    public void InitLinkButton()
    {
       System.Web.UI.HtmlControls.HtmlGenericControl div=new System.Web.UI.HtmlControls.HtmlGenericControl("div");
       HyperLink lnk = new HyperLink();
           lnk.NavigateUrl = "http://www.abc.com";
           lnk.Text = "Click here to go to abc.com";
           div.Controls.Add(lnk);  
           //same way you add more link to div
       //finally adding this to base control.
       base.Controls.Add(div);

    }

}