2010-06-10 10 views
8

Sto appena iniziando un nuovo progetto e sto facendo accadere cose davvero strane.Perché il mio ripetitore è vuoto nel codice?

ASP.NET 3.5, VS2008.

Ho provato a ricostruire, chiudere VS, eliminare tutto e ottenere di nuovo da svn ma non riesco a capire perché il ripetitore di seguito sia nullo su page_load.

So che questo sarà un momento da capogiro. Aiutarmi?

Markup:

<%@ 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> 

codice dietro

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(); 
    } 
} 

Designer:

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; 
} 

Perché è il mio ripetitore nulla? Cosa sta succedendo la F?

La pagina di riferimento ha questo:

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

Il web.config ha questo (non ho mai dovuto farlo prima, ma il mio masterpage lamentavo di non trovare un altro controllo utente).

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

Molto strano. Hai controllato il tuo file .aspx.designer.cs per il controllo del ripetitore? Forse per qualche motivo il progettista non ha auto-generato il riferimento? Ho visto che succedeva prima. – RPM1984

+0

sì è lì. Domanda aggiornata –

+0

Ho appena provato a creare un controllo completamente nuovo con lo stesso effetto. La pagina che fa riferimento a questo ha un DropDownList su di esso che va bene. –

risposta

14

Dopo ore di sbattere la testa, ho finalmente capito questo.

Mi riferivo ai controlli utente nella configurazione Web come indicato (ho anche provato il metodo Register con l'assembly). Penso che ci sia una stranezza con questo metodo quando i controlli sono nello stesso assembly. Così facendo riferimento a loro in questo modo:

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

Ha funzionato immediatamente.

Spero che qualcun altro con lo stesso problema lo trovi utile.

+0

Grazie, risolto subito il mio problema! – johna

0

Ho avuto un problema simile, solo per rendermi conto che il ripetitore in questione era nel (massiccio) modello di intestazione di un altro ripetitore. Riorganizzare il modello di intestazione in modo tale che il ripetitore fosse fuori, risolto il problema ... Strano che non ci fossero errori del compilatore anche se

Problemi correlati