2009-09-28 8 views
6

Sto caricando un set di record che vengono caricati in un controllo Repeater. Ho un controllo CheckBox per ogni record che determina se l'elemento è attivo/non attivo. Come faccio a scorrere tutti i record nel Repeater in un evento clic del pulsante e salvare lo stato di CheckBox? Avrò bisogno di ottenere l'ID del record e lo stato controllato del controllo.Come salvare gli oggetti caricati in un ripetitore?

Grazie!

risposta

17

Ci sono alcuni modi per avvicinarlo. Se non si esegue nuovamente l'associazione dei dati su PostBack (ad esempio, si sta facendo affidamento sul ripetitore già popolato), è necessario scrivere l'ID del record in un campo che verrà mantenuto in ViewState. In questo esempio ho usato un HiddenField:

void Button_Click(object sender, EventArgs e) 
{ 
    foreach(RepeaterItem item in myRepeater.Items) 
    { 
     CheckBox cbxIsActive = item.FindControl("cbxID") as CheckBox; 
     HiddenField hdfID = item.FindControl("recordID") as HiddenField; 
     if(cbxIsActive != null && hdfID != null) 
     { 
      string recordID = hdfID.Value; 
      bool isActive = cbxIsActive.Checked; 
      UpdateRecord(recordID, isActive); 
     } 
    } 
} 
+0

Nice. Non avevo realizzato che sarebbe stato così facile. Grazie!! –

Problemi correlati