Wie man Datenquelle Felder in einem ASP.NET-Repeaters ItemDataBound Ereignis zugreifen?
-
06-07-2019 - |
Frage
Ich habe ein Repeater-Steuerelement, das das Ergebnis einer Linq Abfrage gebunden wird.
Ich mag den Wert eines der Datenquelle der Felder in dem ItemDataBound Ereignisse bekommen, aber ich bin nicht sicher, wie dies zu tun.
Lösung
Sie können:. e.Item.DataItem
Beispiel: Repeater.ItemDataBound Ereignis
// 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>";
}
}
}
Andere Tipps
auf der Datasource Je ... Wenn Ihre Datasource eine Datatable ist, dann DataItem enthält eine 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();
}
}
Die Daten, die für das aktuelle Element verwendet wird, können aus dem EventArgs gefunden werden.
RepeaterItemEventArgs e
e.Item.DataItem
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow