2010-09-02 7 views
0

J'ai un répéteur avec lequel je veux utiliser pour afficher un contrôle utilisateur plusieurs fois, avec des données.
Actuellement, j'ai ceci:Répéteur utilisant un contrôle utilisateur

<asp:Repeater runat="server" ID="MyRepeater" > 
    <ItemTemplate> 
     <uc1:MyItems ID="MyItems1" runat="server" /> 
    </ItemTemplate> 
</asp:Repeater> 

Mon contrôle utilisateur a trois propriétés que je veux remplir pour chacun. J'ai actuellement ceci:

protected void Page_Load(object sender, EventArgs e) 
{ 
    MyDataSource.SelectCommand = 
       "SELECT Name, Address, Phone " + 
       "FROM TestTable "; 
    MyDataSource.SelectCommandType = SqlDataSourceCommandType.Text; 
    DataView resultsdv = (DataView)MyDataSource.Select(DataSourceSelectArguments.Empty); 
    foreach (DataRow dr in resultsdv.Table.Rows) 
    {    
     MyItems1.Cust_Name = dr["Name"].ToString(); 
     MyItems1.Cust_Address = dr["Address"].ToString(); 
     MyItems1.Cust_Tel = dr["Phone"].ToString(); 
    } 
} 

Évidemment, ceci ne fait pas ce que je veux. Est-il possible de dire au répéteur que je veux remplir mon contrôle utilisateur - soit en le liant à des données, soit en le remplissant manuellement de la même manière que ci-dessus?

Répondre

3
<asp:Repeater runat="server" ID="MyRepeater" > 
    <ItemTemplate> 
     <uc1:MyItems ID="MyItems1" MyItems="<%# Eval("Name") %>" ... runat="server" /> 
    </ItemTemplate> 
</asp:Repeater> 

protected void Page_Load(object sender, EventArgs e) 
{ 
    MyDataSource.SelectCommand = 
       "SELECT Name, Address, Phone " + 
       "FROM TestTable "; 
    MyDataSource.SelectCommandType = SqlDataSourceCommandType.Text; 
    DataView resultsdv = (DataView)MyDataSource.Select(DataSourceSelectArguments.Empty); 
    MyRepeater.DataSource = resultsdv.Table.Rows; 
    MyRepeater.DataBind() 

} 
+0

Merci - cela a fonctionné avec une légère modification: CUST_NAME = <% # Eval ("[\" Nom \ "]")%> –

1

Je pense qu'il faut quelques corrections:

<asp:Repeater runat="server" ID="MyRepeater" > 
    <ItemTemplate> 
     <uc1:MyItems ID="MyItems1" Cust_Name=<%#Eval("Name") %> Cust_Address=<%#Eval("Address")%> Cust_Tel=<%#Eval("Phone")%> runat="server" /> 
    </ItemTemplate> 
</asp:Repeater> 
Questions connexes