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