我有一个自定义锚创建功能
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);
}
这会在网页上创建锚标记。以下是.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
有什么建议么?