2009-05-06 5 views

risposta

27

È possibile utilizzare: e.Item.DataItem.

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

I dati utilizzati per la voce corrente può essere trovato dai EventArgs.

RepeaterItemEventArgs e 

e.Item.DataItem 
38

A seconda del DataSource ... Se il DataSource è un DataTable, allora la vostra DataItem contiene una 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(); 
    } 
} 
+0

Impressionante risposta! Grazie – Eric

+0

questo è esattamente quello che voglio – mzonerz