2010-04-26 18 views
1

J'ai un contrôle de répéteur lié à une collection d'objets. Lorsque je déclenche l'événement button_onclick, j'ai besoin d'accéder au dataitem pour obtenir les propriétés de l'objet. Voici ce que j'ai et ma question est de savoir comment puis-je accéder les objets sous-jacents dans un répéteur dans un événement button_onclickAccès à Repeater DataItem dans l'événement Button_OnClick

protected void OKButton_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     string selectedValue = Request.Form["repeaterRadioButton"]; 
     foreach (RepeaterItem item in Repeater1.Items) 
     { 
      if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem) 
      { 
       MyObject myObject = (MyObject)item.DataItem; 
       if (!string.IsNullOrEmpty(selectedValue) && selectedValue == myObject.MyProperty) 
       { 
        //stuff in here 
       } ... rest of code 

Répondre

3

DataItem n'est pas retenu; Il est uniquement utilisé pour lier l'interface initiale, à moins que vous ne reliiez le répéteur à chaque chargement de page. Ensuite, vous devez donner une valeur de commande au bouton, et tapez dans le repeater.itemCommand, ce qui vous donnera accès à l'élément répéteur, où la propriété dataitem vit.

EDIT: Si vous avez besoin d'accéder à des éléments dans le répéteur, vous pouvez faire:

foreach (var item in this.rpt.Items) 
{ 
    if (item.DataItem != null) { 
     //Do something 
    } 
} 

Vous essayez d'accéder à une ligne ou la collection de lignes?

HTH.

+0

Salut, j'essaie cela mais si je laisse le bouton en dehors du répéteur, il ne frappe pas l'événement ItemCommand et si je mets le bouton dans le pied de répéteur, il dit toujours e.Item.DataItem est nul – user204588

+0

Ok, ce que j'ai décrit était le bouton dans le modèle d'élément de répéteur ... Je pensais que c'était ce que vous cherchiez, désolé à ce sujet. le pied de page n'a pas d'élément de données, donc il sera toujours nul ... cherchez-vous à accéder à toutes les lignes, ou à une seule ligne? Vous pouvez accéder à la collection d'éléments du répéteur pour cela, comme indiqué ci-dessus. –