How to access datasource fields in an ASP.NET Repeaters ItemDataBound event? How to access datasource fields in an ASP.NET Repeaters ItemDataBound event? asp.net asp.net

How to access datasource fields in an ASP.NET Repeaters ItemDataBound event?


Depending on the DataSource...If your DataSource is a DataTable, then your DataItem contains a 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();    }}


You can use: e.Item.DataItem.

Example: 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>";    }  }} 


The data that is used for the current item can be found from the EventArgs.

RepeaterItemEventArgs ee.Item.DataItem