2009-05-06 5 views

Antwort

27

Sie können verwenden: e.Item.DataItem.

Beispiel: 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

Die Daten, die für das aktuelle Element verwendet wird, kann aus dem EventArgs finden.

RepeaterItemEventArgs e 

e.Item.DataItem 
38

Abhängig von der Datasource ... Wenn Ihre Datasource eine Datatable ist, dann enthält Ihr DataItem eine 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

Super Antwort! Danke – Eric

+0

das ist genau das, was ich will – mzonerz