基本的なjQueryUIをテーマにしたコントロールとウィジェットの操作を簡単にするために、いくつかのWebサーバーコントロールを作成中です。この段階で行う必要があるのは、ハイパーリンクにCSSクラスを追加することだけです。
以下のコードは私の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クラスでハイパーリンクを生成します。ただし、これも指定すると、 doubleクラス属性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>
ヘルプ!どうすればこれを防ぐことができますか?