1

希望是一个简单的,我创建了一个扩展 System.Web.UI.WebControls.Repeater 的自定义中继器控件。我已向此控件添加了两个 ITemplate 属性,并在需要时以所需的方式添加它们。一切工作正常,但我在 Visual Studio 中遇到了识别这些新模板的问题。

当我将转发器添加到页面时,例如:

<my:Repeater ID="rpt" runat="server" NewProperty="This works!">
    <NewTemplate>The contents go here...</NewTemplate>
</my:repeater>

一切正常(哇!),当我添加我添加的属性“NewProperty”时,可以在 Visual Studio 的 Intellisense 中按预期看到(哇!)。令人烦恼的是,虽然新的 ITemplate 无法通过 Intellisense 获得,但我必须从他们在那里的知识中回忆起这一点(嘘!)。新模板还带有“问题”下划线,并带有以下消息:

验证(XHTML 1.0 过渡):不支持元素“newtemplate”。

无论如何,这都不是一个主要问题,因为当编译自定义中继器时,模板会按照它们的需要运行,这更像是一个很烦人的问题,需要解决。

谢谢你的帮助!

史蒂夫

4

1 回答 1

2

XHTML 要求元素名称以小写字母开头。HTML 不区分大小写,而 XHTML 是。

来源:http ://www.w3.org/TR/xhtml1/#h-4.2

为了使该属性可见,您需要将 PersistenceMode 属性添加到您的 ITemplate 属性,如下所示:

[PersistenceMode(PersistenceMode.InnerProperty)]
public ITemplate NewTemplate
{
   get;
   set;
}
于 2009-04-16T13:08:37.370 回答