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 suis pas sûr de savoir comment procéder.
Vous pouvez utiliser: e.Item.DataItem
.
Exemple: Repeater.ItemDataBound Event
// 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>";
}
}
}
Selon le DataSource ... Si votre DataSource est un DataTable, alors 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 actuel peuvent être trouvées dans EventArgs.
RepeaterItemEventArgs e
e.Item.DataItem