Ciao a tutti, ho 2 problemi con il mio Datagrid
Nella mia pagina asp.net ho costruito un Datagrid senza AutoGenerateColumns. Infatti le colonne del datagrid le implemento da codice all'interno di una funzione chiamata bindgrid().
Il PRIMO PROBLEMA è che il codice per costruire il Datagrid, che come ho detto si trova nella funzione BindGrid, viene eseguito 2 volte invece che una sola. Questo comporta che i campi nel Datagrid vengono duplicati.
Ossia avrò un DG del tipo:
|Modifica|Nome|Cognome|Modifica|Nome|Cognome|
La chiamata alla funzione bindgrid si trova all'interno del PageLoad, e viene fatta solo se viene passato un parametro in QueryString.
Ecco il semplice codice:
String modalita=Request.QueryString["modo"];
if (modalita=="mod")
{
EditCommandColumn modifica = new EditCommandColumn();
modifica.UpdateText="Aggiorna";
modifica.EditText="Modifica Gestore";
modifica.CancelText="Indietro";
DG_gestori.Columns.Add(modifica);
DG_gestori.EditCommand += new DataGridCommandEventHandler(this.DG_gestori_Edit);
DG_gestori.CancelCommand += new DataGridCommandEventHandler(this.DG_gestori_Cancel );
DG_gestori.UpdateCommand += new DataGridCommandEventHandler(this.DG_gestori_Update );
BindGrid();
}
Eseguendo in debug ho visto che l'esecuzione del codice torna 2 volte su if (modalita=="mod") e di conseguenza 2 volte sulla chiamata a bindgrid(). Un mio collega ha lo stesso problema su una pagina da lui realizzata. Non riusciamo proprio a capire da che dipende.
Mi sapete spiegare perchè accade tutto ciò???
Il SECONDO PROBLEMA è che, come vedete nel codice che ho postato sopra, ho costruito dinamicamente la colonna per la modifica dei valori del datagrid ed ho poi definito gli eventi per l'edit. l'Update ed il Cancel.
Quello dell'edit funziona perfettamente... infatti al clik sul link tutti i campi del relativo record diventano editabili e vengono create automaticamente le voci "Indietro" ed "Aggiorna".
Solo che cliccando su queste due voci, nonostante abbia definito un evento per il CancelCommand e l'UpdateCommand viene chiamata sempre la void DG_gestori_Edit
Cosa ho sbagiato???
HELP HELP![]()
![]()