Comment accéder aux champs de source de données d'un événement ItemDataBound ASP.NET Repeaters?

StackOverflow https://stackoverflow.com/questions/829002

  •  06-07-2019
  •  | 
  •  

Question

J'ai un contrôle Repeater lié au résultat d'une requête Linq.

Je souhaite obtenir la valeur de l'un des champs de la source de données dans l'événement ItemDataBound, mais je ne sais pas comment procéder.

Était-ce utile?

La solution

Vous pouvez utiliser: e.Item.DataItem .

Exemple: Evénement Repeater.ItemDataBound

// This event is raised for the header, the footer, separators, and items.
void R1_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
{
  // Execute the following logic for Items and Alternating Items.
  if (e.Item.ItemType == ListItemType.Item ||
      e.Item.ItemType == ListItemType.AlternatingItem)
  {
    if (((Evaluation)e.Item.DataItem).Rating == "Good")
    {
      ((Label)e.Item.FindControl("RatingLabel")).Text= "<b>***Good***</b>";
    }
  }
} 

Autres conseils

En fonction de la source de données ... Si votre source de données est un DataTable, votre DataItem contient un DataRowView:

protected void rptMyReteater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        Button b = e.Item.FindControl("myButton") as Button; 
        DataRowView drv = e.Item.DataItem as DataRowView;
        b.CommandArgument = drv.Row["ID_COLUMN_NAME"].ToString();
    }
}

Les données utilisées pour l'élément en cours sont disponibles dans EventArgs.

RepeaterItemEventArgs e

e.Item.DataItem
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top