¿Cómo acceder a los campos de origen de datos en un evento ASP.NET Repeaters ItemDataBound?
-
06-07-2019 - |
Pregunta
Tengo un control Repeater que está vinculado al resultado de una consulta Linq.
Quiero obtener el valor de uno de los campos del origen de datos en el evento ItemDataBound, pero no estoy seguro de cómo hacerlo.
Solución
Puede usar: e.Item.DataItem
.
Ejemplo: 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>";
}
}
}
Otros consejos
Dependiendo de la fuente de datos ... Si su DataSource es una DataTable, su DataItem contiene 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();
}
}
Los datos que se utilizan para el elemento actual se pueden encontrar en EventArgs.
RepeaterItemEventArgs e
e.Item.DataItem
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow