Pregunta

Con suerte fácil, he creado un control Repeater personalizado que se extiende System.Web.UI.WebControls.Repeater. He añadido dos propiedades ITemplate a este control y agregar éstos cuando sea necesario y en la forma deseada. Todo está trabajando absolutamente bien pero estoy teniendo un problema en Visual Studio tras reconocer estas nuevas plantillas.

Cuando agrego el repetidor a la página, por ejemplo:

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

Todo está funcionando (Woo!) Y cuando agrego los atributos 'NewProperty', una propiedad que he añadido, se puede ver en Intellisense en Visual Studio como se esperaba (Woo!). Molestamente pesar de que los nuevos ITemplate de no están disponibles a través de Intellisense y esto tiene que ser recordado de mi conocimiento de ellos estar allí (Boo!). La nueva plantilla también tiene el 'problema' de relieve con el mensaje siguiente:

  

Validación (XHTML 1.0 Transitional):. Element 'NewTemplate' no se admite

No es un problema importante de ninguna manera como cuando se compila las obras de repetidor a medida y las plantillas se comportan como lo necesitan, es más una molestia que sería grande para ordenar a cabo.

Gracias por cualquier ayuda!

Steve

¿Fue útil?

Solución

XHTML requiere que los nombres de los elementos comienzan con la letra minúscula. HTML no es sensible a mayúsculas, mientras que XHTML es.

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

A fin de que la propiedad sea visible, es necesario añadir el atributo PersistenceMode a sus propiedades ITemplate de la siguiente manera:

[PersistenceMode(PersistenceMode.InnerProperty)]
public ITemplate NewTemplate
{
   get;
   set;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top