¿Cómo acceder a los campos de origen de datos en un evento ASP.NET Repeaters ItemDataBound?

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

  •  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.

¿Fue útil?

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
scroll top