2010-05-13 6 views
0

J'essaie d'utiliser userControl pour afficher les données SqlDataReader.SqlDataReader & user control

dans la page principale

public SqlDataReader Data2; 

...

<uc1:WebUserControl ID="WebUserControl1" RData1="<%=Data2 %>" runat="server" /> 

et dans le UserControl

Repeater1.DataSource = RData1; 

     Repeater1.DataBind(); 



    <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> 
<div class="row"> <b> 
<%#DataBinder.Eval(Container.DataItem, 
"replay_subject")%></b><br /> 
<%#DataBinder.Eval(Container.DataItem, 
"replay_text")%><hr/> </div> 
</ItemTemplate> 
     </asp:Repeater> 

Mais je continue à obtenir cette erreur

Impossible de créer un objet de type 'System.Data.SqlClient.SqlDataReader' à partir de sa représentation sous forme de chaîne '<% = Data2%>' pour la propriété 'RData1'.

Répondre

4

Vous ne pouvez pas affecter RData1 en utilisant ce code en ligne sur l'ASPX. Le compilateur essaie de convertir Data2 en une représentation de chaîne afin de définir la propriété et RData1 attend un SqlDataReader afin qu'il échoue.

Vous devez lui attribuer le code sous-jacent comme celui-ci

WebUserControl1.RData1 = Data2;
+0

il n'a pas reconnu objet WebUserControl1 à partir du fichier ASPX – Bob

+0

@Bob: Vous devez attribuer la propriété sur le codebehind, le CS –

+0

J'ai fait. dans la même page le est. mais il ne l'a pas reconnu. une raison? – Bob

Questions connexes