2010-06-10 11 views
8

Estoy empezando un nuevo proyecto y estoy pasando cosas realmente raras.¿Por qué mi Repeater es nulo en el código?

ASP.NET 3.5, VS2008.

He intentado reconstruir, cerrar VS, borrar todo y volver a obtener de svn, pero no puedo entender por qué el repetidor en el siguiente es nulo en page_load.

Sé que va a ser un momento de cambio de tendencia. ¿Ayúdame?

de marcado:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="GalleryControl.ascx.cs" Inherits="Site.UserControls.GalleryControl" %> 
<asp:Repeater ID="rptGalleries" runat="server"> 
    <HeaderTemplate><ul></HeaderTemplate> 
    <ItemTemplate> 
     <li>wqe</li> 
    </ItemTemplate> 
    <FooterTemplate></ul></FooterTemplate> 
</asp:Repeater> 

Código detrás

public partial class GalleryControl : System.Web.UI.UserControl 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     rptGalleries.DataSource = new[] {1, 2, 3, 4, 5}; 
     rptGalleries.DataBind(); 
    } 
} 

diseñador:

public partial class GalleryControl { 

    /// <summary> 
    /// rptGalleries control. 
    /// </summary> 
    /// <remarks> 
    /// Auto-generated field. 
    /// To modify move field declaration from designer file to code-behind file. 
    /// </remarks> 
    protected global::System.Web.UI.WebControls.Repeater rptGalleries; 
} 

¿Por qué mi nula repetidor? ¿Qué está pasando?

La página de referencia tiene esta:

<ux:GalleryControl runat="server" ID="uxGalleryControl"/> 

El web.config tiene esta (nunca he tenido que hacer esto antes, pero mi masterpage se quejaba de que no encuentra otro control de usuario).

<add tagPrefix="ux" namespace="Site.UserControls" assembly="Site" /> 
+0

Muy extraño. ¿Revisó su archivo .aspx.designer.cs para el control del repetidor? ¿Tal vez por alguna razón el diseñador no ha autogenerado la referencia? He visto que sucede antes. – RPM1984

+0

sí, está allí. Pregunta actualizada –

+0

Acabo de intentar crear un control completamente nuevo con el mismo efecto. La página que hace referencia a esto tiene una DropDownList, que está bien. –

Respuesta

14

Después de horas de golpear la cabeza finalmente me he dado cuenta.

Estaba haciendo referencia a los controles de usuario en la configuración web como se indica (también probé el método de registro con el conjunto). Creo que hay una rareza con este método cuando los controles están en el mismo conjunto. Así que al hacer referencia a ellos de esta manera:

<%@ Register Src="~/UserControls/GalleryControl.ascx" TagPrefix="ux" TagName="GalleryControl" %> 

Trabajó de inmediato.

Espero que alguien más con el mismo problema lo encuentre útil.

+0

¡Gracias, resolvió mi problema enseguida! – johna

0

Tuve un problema similar, solo para darme cuenta de que el repetidor en cuestión estaba en la plantilla de encabezado (masivo) de otro repetidor. Reordenando la plantilla del encabezado de tal manera que dicho repetidor estaba afuera, resolvió el problema ... Raro que no hubo errores del compilador aunque

Cuestiones relacionadas