Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    2 problemi con Datagrid

    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

  2. #2
    Qualcuno può aiutarmi???
    Anche se non avete la soluzione ad entrambi i problemi... potete aiutarmi su di 1 solo....

    GRAZIE

  3. #3
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Il primo problema è risolvibile verificando se la pagina è stata rimandata al server:

    If not ispostback then...

    Altrimenti quando clicchi su un pulsante all'interno della griglia (e passi ancora nel pageload)le colonne già esistenti vengono mantenute dalla viewstate e, ne aggiungi una nuova serie.

    Per la seconda invece ti consiglierei di mettere la colonna per l'edit nel file.aspx e, poi se come mi sembra di capire, hai l'esigenza di mostrarla oppure di nasconderla a seconda dei casi fai così:

    if .......mod ....
    DG_gestori.Columns(0).visible=False

    Ciao
    Legnetto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.