2009-07-28 8 views
1

Je ne suis pas familier avec le contrôle de répéteur asp.net. J'ai deux colonnes dans le répéteur, quantité et sku. En cliquant sur le bouton, je veux parcourir les rangées du répéteur et passer chaque quantité et passer à une méthode. Comment obtenez-vous cette information dans un répéteur?Répéteur ASP.NET

Répondre

7

Dans la méthode pour le bouton clic:

foreach(RepeaterItem item in repeaterControlID.Items) 
{ 
    var quantity = item.FindControl("quantityControlID"); 
    var sku = item.FindControl("skuControlID"); 
} 

Ou quelque chose comme ça. Vous pouvez également utiliser la propriété Controls de RepeaterItem pour les parcourir. E: mon interprétation de votre question était: "Sur la publication provoquée par un clic sur un bouton, je veux parcourir les éléments du répéteur et passer ces valeurs dans une méthode." Cela ne sera pas applicable pour remplir le répéteur ou en faisant quelque chose dans le javascript côté client.

Et bien sûr, MSDN est une excellente ressource pour apprendre à utiliser différentes classes, comme le Repeater

+0

merci, je regardé MSDN, mais ne pas comme les exemples. – jumbojs

0

Côté client ou côté serveur? En supposant que vous voulez dire côté serveur, utilisez l'événement OnItemDataBound du répéteur. Cela se déclenchera une fois par ligne, les données de la ligne étant incluses en tant que paramètre.

0

Cela dépend de la façon dont vous affichiez « quantité » et « sku » dans votre ItemTemplate. Si vous utilisez la syntaxe <%# DataBinder.Eval(Container, "quantity") %>, vous pouvez faire quelque chose comme ceci:

foreach(RepeaterItem item in Repeater1.Items) 
     {   
      string quantity = ((DataBoundLiteralControl)item.Controls[0]).Text; 
      string sku = ((DataBoundLiteralControl)item.Controls[1]).Text; 

     } 

Il serait utile que si vous pouvez publier votre ItemTemplate.

+0

Quelle mauvaise solution !!!!! Et si les colonnes changent sa commande !! ?? –

0

Vous voulez « taper » vos commandes aussi d'accéder à ses propriétés ...

foreach(RepeaterItem item in this.RptTest.Items){ string DdlTestValue = ((DropDown)item.FindControl("DdlTest")).SelectedValue; string TxtTestValue = ((TextBox)item.FindControl("TxtTest")).Text; }

Questions connexes