カスタムアンカー作成機能があります
public static Anchor Create(string name, object variant)
{
return new Anchor(string.Format("{0}{1}", (name.StartsWith("#") ? name : string.Format("#{0}", name)), variant).Replace(' ', '_'));
}
public static Anchor Create(string name)
{
return Create(name, string.Empty);
}
これにより、Web ページにアンカー タグが作成されます。以下は、.ascx
コントロールの呼び出しです
<asp:DataList ID="_meterLinkBar" runat="server" RepeatDirection="Horizontal" CssClass="bodytext4" RepeatLayout="Flow">
<ItemTemplate>
<a href='<%# Anchor.Create("Meter", Container.ItemIndex + 1) %>' title='<%# Eval("Name", "{0} measurement results") %>'>
<%# FormatMeterName(Eval("Name") as string, Container.ItemIndex) %></a>
</ItemTemplate>
<SeparatorTemplate>|</SeparatorTemplate>
<FooterTemplate>
<hr style="height: 1px; border-width: 0; color: #006690; background-color: #006690;" />
</FooterTemplate>
</asp:DataList>
以下は、アンカータグ付きの実際のアイテムです
<ItemTemplate>
<a id='<%# Anchor.Create("Meter", Container.ItemIndex + 1) %>'></a>
....
</ItemTemplate>
編集
これがtoStringメソッドです
public override string ToString()
{
return _name;
}
以下はコンストラクタ
private Anchor(string name)
{
_name = name;
}
現在、すべてが IE で機能しますが、他のブラウザーでは、リンクは適切にレンダリングされますが、実際のアンカー タグ自体は ##whatever として表示されます。
助言がありますか?