我正在編寫一些Web服務器控件,以使基本的jQuery UI主題控件和小部件更容易工作。在這個階段我需要做的是在超鏈接中添加一些額外的CSS類。創建我自己的Web服務器超鏈接控件 - 覆蓋類屬性的問題
下面的代碼是我的Web服務器控件。
using System;
using System.ComponentModel;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Fusion.UI.Controls
{
[
ToolboxData("<{0}:Hyperlink runat=\"server\"></{0}:Hyperlink>")
]
public class Hyperlink : System.Web.UI.WebControls.HyperLink
{
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
writer.AddAttribute(HtmlTextWriterAttribute.Class, "fg-button ui-state-default ui-corner-all");
// Call underlying renderer
base.AddAttributesToRender(writer);
}
}
}
這工作正常,並生成超鏈接與額外的CSS類。但是,如果我還指定了CssClass
它結束了創建雙類屬性:
<Fusion.UI:Hyperlink ID="Hyperlink1" runat="server" NavigateUrl="#" CssClass="ui-state-disabled" >Link</Fusion.UI:Hyperlink>
產生下面的HTML:
<a class="fg-button ui-state-default ui-corner-all" id="ctl00_cphMainContent_Hyperlink1" class="ui-state-disabled" href="#">Link</a>
幫助!我該如何阻止這種情況的發生?
奇怪的是,不會讓我補充我的回答是:'( – JustLoren 2009-11-11 16:14:23
哦我會覆蓋RenderBeginTag和手動將相關類追加到的CssClass,然後信任底層控制,以正確地呈現自身較少的工作各地。 :D – JustLoren 2009-11-11 16:17:33