Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117

    post precedente.....recupero valori datagrid

    Ho un datagrid con una colonna "textbox" libera, nella quale l'utente può inserire un proprio valore (non in editmode ma nella visualizzazione "standard") ... e che viene inizializzato con il valore recuperato dal DB.

    Al click di un pulsante, itero tutte le righe del datagrid e salvo i valori presenti (compreso anche il textbox)...



    come posso recuperare il valore modificato dall'utente??

    dato che facendo

    foreach(DataGridItem dgi in MyDataGrid.Items)
    {

    if ((int.Parse((((TextBox)dgi.Cells[7].FindControl("Totale")).Text))) > 0)
    {

    string quantita = ((TextBox)dgi.Cells[7].FindControl("Totale")).Text;


    recupera il valore iniziale del datagrid e non quello inserito/modificato dall'utente??

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    sicura di non ricaricare il datagrid, e quindi il textbox, ad ogni postback..
    cioè in Page_Load metti:
    if not Page.IsPostback {
    //' carica il datagrid e fai databind
    }

  3. #3
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    sicura....

  4. #4
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    Please help me!!!!

    non so piu come risolvere questo problema!



  5. #5
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    Riposto il mio codice "completo"

    sperando che si possa capire il problema...

    Il datagrid è:



    <asp:datagrid id="MyDataGrid" runat="server" Width="98%" BorderStyle="Ridge" GridLines="None"
    BorderWidth="2px" BorderColor="White" OnEditCommand="MyDataGrid_Edit" OnCancelCommand="MyDataGrid_Cancel"
    BackColor="White" CellPadding="3" CellSpacing="1" AllowSorting="True" PagerStyle-Mode="NextPrev" PagerStyle-HorizontalAlign="Center"
    PagerStyle-Position="TopAndBottom" DataKeyField="ID" OnPageIndexChanged="MyDataGrid_PageIndexChanged" OnSortCommand="Sort_Grid"
    OnDeleteCommand="MyDataGrid_Delete" AutoGenerateColumns="False" HorizontalAlign="Center">
    <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#9471DE"></SelectedItemStyle>
    <ItemStyle ForeColor="Black" BackColor="#DEDFDE"></ItemStyle>
    <HeaderStyle Font-Bold="True" ForeColor="#E7E7FF" BackColor="#698696"></HeaderStyle>
    <FooterStyle ForeColor="Black" BackColor="#C6C3C6"></FooterStyle>
    <Columns>



    ...


    <asp:TemplateColumn SortExpression="Quantita" HeaderText="Evasione">
    <ItemStyle Width="50px"></ItemStyle>
    <ItemTemplate>
    <asp:TextBox runat="server" Width="70" OnTextChanged="VerificaRiga" AutoPostBack="True" class="TestoDataGrid"
    id="Totale" Text='0' />
    </ItemTemplate>
    </asp:TemplateColumn>


    </Columns>
    <PagerStyle NextPageText="Succ" Font-Size="XX-Large" Font-Names="Arial" PrevPageText="Prec"
    HorizontalAlign="Right" ForeColor="Black" Position="TopAndBottom" BackColor="#C6C3C6" Mode="NumericPages"></PagerStyle>
    </asp:datagrid>





    cliccando sul pulsante



    <asp:button id="buttonAdd" runat="server" Text="Evasione ordine" CausesValidation="False"></asp:button>



    eseguo



    foreach(DataGridItem dgi in MyDataGrid.Items)

    {


    if ((int.Parse((((TextBox)dgi.Cells[7].FindControl("Totale")).Text))) > 0)

    {



    string quantita = ((TextBox)dgi.Cells[7].FindControl("Totale")).Text;

    string codice = ((Label)dgi.Cells[0].Controls[1]).Text;



    try

    {

    OleDbCommand myCommandfornitore = new OleDbCommand("SP_EvasioneTMP_Insert", myConnection3);

    myCommandfornitore.CommandType=CommandType.StoredP rocedure;


    myCommandfornitore.Parameters.Add("@IDPuntoVendita ", OleDbType.VarChar);

    myCommandfornitore.Parameters.Add("@NumeroOrdine", OleDbType.VarChar);

    myCommandfornitore.Parameters.Add("@CodiceArticolo ", OleDbType.VarChar);

    myCommandfornitore.Parameters.Add("@QuantitaEvasa" , OleDbType.VarChar);

  6. #6

    Re: post precedente.....recupero valori datagrid

    Originariamente inviato da valeria75
    Ho un datagrid con una colonna "textbox" libera, nella quale l'utente può inserire un proprio valore (non in editmode ma nella visualizzazione "standard") ...
    Non esiste la "textbox libera" usando una datagrid asp.net. La datagrid ha bisogno di sapere quale riga l'utente ha modificato ed e' per questo che e' necessario un pulsantino a fianco di ogni riga per metterla in edit mode.
    Discorso diverso e' se non ti interessa usare la datagrid o comunque usarla solo in parte (es. solo per presentare all'utente i dati). In questo caso, puoi intendere il codice html creato dalla datagrid come un normale form e al momento del postback della pagina (es. click sul pulsante salva) puoi raccogliere i dati inviati con qualcosa di simile a request.form("nometextbox") . Per sapere i nomi html dei controlli puoi visualizzare il codice html della pagina con la datagrid creata. Se non sbaglio in un precedente tuo post molto simile ti e' stato risposto un esempio per gestire i dati in questo modo.
    Saluti a tutti
    Riccardo

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: ehmmmmm! credevo che non funzionasse Ma per curiosità ho provato a fare come valeria75 (scopiazzando un po' il suo codice), e devo dire che funziona PERFETTAMENTE. Ho realizzato una paginetta essenziale in basic. Ho messo in una DataGrid un TextBox e, non in edit mode, alla pressione di un tasto, fuori del datagrid, faccio una scansione dei textbox contenuti nella griglia, recupero i valori e li inserisco nel database. E funziona
    Non conoscendo il c# dico in lingua come ho fatto:

    Nell'evento Load:
    se non sono in PostBack allora BindData


    Nel BindData:
    popolo la griglia leggendo i dati dal database


    alla pressione Click del pulsante:
    Per ogni item della griglia
    recupero il valore del TexBox nella riga in quella data colonna
    recupero l'ID conservato nel DataKeys della griglia
    aggiorno i dati nel database

    alla fine del ciclo:
    BindData

    Pietro

  8. #8
    Originariamente inviato da pietro09
    ...alla pressione di un tasto, fuori del datagrid, faccio una scansione dei textbox contenuti nella griglia, recupero i valori e li inserisco nel database.
    Questo dovrebbe funzionare, ma se non sbaglio il problema e' che cosi facendo salva i dati che ci sono gia' nelle textbox e non quelli modificati dall'utente.
    Saluti a tutti
    Riccardo

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da riccardone
    Questo dovrebbe funzionare, ma se non sbaglio il problema e' che cosi facendo salva i dati che ci sono gia' nelle textbox e non quelli modificati dall'utente.
    Nell'esempio fatto da me (ripeto, stringato al massimo), salvo i dati dei TextBox, sia quelli modificati, sia gli altri.

    E' chiaro che si può operare diversamente, per esempio salvando i dati in un DataTable e verificando quelli effettvamente cambiati...

    ma questo è un altro discorso.

    Ciao
    Pietro

  10. #10
    Originariamente inviato da pietro09
    Nell'esempio fatto da me (ripeto, stringato al massimo), salvo i dati dei TextBox, sia quelli modificati, sia gli altri.
    beh... posta il codice cosi valeria75 vede dov'e' il problema nel suo codice e per me tengo il codice di esempio da parte che in futuro puo' sempre servire.
    Saluti a tutti
    Riccardo

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 © 2026 vBulletin Solutions, Inc. All rights reserved.