De Contrôle De L'Utilisateur À L'Intérieur De Répéteur

J'ai un UserControl à l'intérieur d'un répéteur. La répétition de la source de données est à partir de SQL Server.

De Contrôle de l'utilisateur .cs - MoviePanel.ascx.cs:


public int myMovieID { get; set; }
public string myMovieName { get; set; }
public string myMovieDescription { get; set; }

protected void Page_Load(object sender, EventArgs e)
{
   MovieIDLbl.Text = myMovieID.ToString();
   MovieNameLbl.Text = myMovieName;
   DescriptionLbl.Text = myMovieDescription;
}

Page ASPX:


<asp:Repeater ID="Repeater1" DataSourceID="ListOfMoviesDS" runat="server">
    <ItemTemplate>
        <uc1:MovieDetailPanel runat="server" myMovieID='<%# Eval("MovieID") %>' 
           myMovieName='<%# Eval("movieName") %>' 
                myMovieDescription='<%# Eval("movieDescription") %>' 
                id="MovieDetailPanel1" />

        <asp:Label ID="Label1" runat="server" 
              Text='<%# Eval("MovieID") %>'></asp:Label>
        <asp:Label ID="Label2" runat="server" 
              Text='<%# Eval("movieName") %>'></asp:Label>
        <asp:Label ID="Label3" runat="server" 
             Text='<%# Eval("movieDescription") %>'></asp:Label>
    </ItemTemplate>
</asp:Repeater>

Ici quelque chose de très étrange se passe. Les valeurs ne sont pas passé à l'objet UserControl. Cependant, si je place les Étiquettes au-dessous de l'objet usercontrol et texte avec Eval() il fonctionne. Vous pourriez penser que le usercontrol pourrait être le problème. Mais si j'manuellement, tapez quelque chose, dire à la place de <%# Eval("movieName") %> celui-ci est transmis à l'utilisateur de contrôler et il est affiché.

Je n'ai PAS la moindre IDÉE! Si le problème est avec la fonction Eval() les Étiquettes ne doivent pas recevoir le texte. Ou si le problème est avec le UserControl mon manuel de texte ne devrait pas avoir de passé. Je n'ai aucune idée de pourquoi Eval()'s des valeurs n'est pas d'atteindre le UserControl.

Pourriez-vous s'il vous plaît laissez-moi savoir comment je suis censé passer les valeurs de l'objet UserControl à partir de code derrière ? Je peux attribuer la source de données de la répétition, mais comment sont les valeurs de la source de données transmis à l'usercontrol ?
À la différence des sites de forum, nous n'utilisons pas de "Merci", ou "Toute aide appréciée", ou des signatures sur Stack Overflow. Voir "Doit 'Bonjour', 'merci,' slogans, et les salutations être supprimé de postes?.
À quel moment dans le cycle de vie de page êtes-vous de vérifier pour voir si les valeurs sont définies? Vous utilisez des expressions de liaison de données, de sorte que ceux-ci seront définis lors de la DataBinding phase.
Je vérifie sur l'événement PageLoad de l'objet UserControl(comme illustré dans l'exemple ci-dessus). Est-ce mal ?
Votre question fait sens pour moi. Pouvez-vous me dire comment suis-je censé détenir le contrôle jusqu'à ce que les valeurs sont définies liée ? Je veux dire, est-il une fonction d'événement que je peux ajouter pour obtenir les valeurs au lieu de le faire à partir de Page_Load() ?

OriginalL'auteur user1220169 | 2013-11-22