Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    [.NET 2] DetailsView UpdateCommand

    ciao,
    ho fatto un collegamento Master/Details, ora vorrei aggiornare il record in dettaglio.
    Sto utilizzando ODBC per via di MySql.
    Tutti gli esempi riportano
    UPDATE tb SET campo=@campo

    il parametro come lo creo?Se vado in "command e parameter editor" io aggiungo un paramentro
    Name = campo
    Parameter Source = Form
    FormField = cap

    però non succede nulla inserisce un BLANK, mi sono dimenticato di fare qualcosa?

    Ho visto che la UpdateQuery può essere TEXT o SotredProcedure. I devo selezionare sicuramente TEXT, ma cosa ci devo scrivere dentro all'UPDATECOMMAND?

  2. #2
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    Devi aggiungere il parametro alla collezione UpdateParameters della SqlDataSource. Se lo fai via codice lo fai durante l'evento ItemUpdating della SqlDataSource. Il valore del parametro lo prendi dal controllo che contiene il valore (textbox, dropdownlist, etc..)

  3. #3
    non è che ho capito molto, ma va bene anche se utilizzo UpdateQueryType = Text ?

    se io scrivo la query "UPDATE tb SET campo=@campo"

    come fa a capire che il parametro campo è la textbox del form?

  4. #4
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    Nel controllo DetailsView stai usando BoundField o TemplateField?

  5. #5
    bound?

    devo utilizzare i Template?Allora faccio prima ad utilizzare il FormView che dici?

  6. #6
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    Usando il boundfield, se il valore assunto dal datafield è lo stesso del nome del parametro dovrebbe essere tutto in automatico. Solo che hai delle limitazioni...puoi usare solo textbox. Io personalmente uso sempre TemplateField e mi inserisco i controlli a mano. Ci metto più tempo ma controllo meglio la situazione. Usare il detailsview o il formview...........dipende da cosa devi fare.

    Ritornando a noi....come ti dicevo prima...nell'evento itemupdating del sqldatasource aggiungi alla collezione degli updateparameters i parametri che ti servono. I controlli li ricavi con il metodo FindControl del detailsview

  7. #7
    prima vorrei capire se è obbligatorio mettere mani al codice.

    codice:
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
                ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
                SelectCommand="SELECT db.tb.* FROM db.tb"
    UpdateCommand="UPDATE db.tb SET direttore =@direttore"
                >
                <SelectParameters>
                    <asp:ControlParameter ControlID="GridView1" Name="id" PropertyName="SelectedValue" />
                </SelectParameters>
                <UpdateParameters>
                    <asp:FormParameter FormField="txtDirettore" Name="direttore" />
                </UpdateParameters>
            </asp:SqlDataSource>
    dentro all'EditTemplate ho questo:
    <asp:TextBox ID="txtDirettore" runat="server" Text='<%# Bind("direttore") %>'></asp:TextBox>

    teoricamente non dovrebbe fare tutto in automatico?

  8. #8
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    Temo di no. Avevo provato con i controlparameter, me il fatto che la textbox è annidata dentro il detailsview non viene trovato l'id

  9. #9
    si infatti ho visto.

    ti faccio una domanda molto banale:

    ma se devo fare tutto da codice, quindi recuperare i controlli tramite il findcontrol, che vantaggio ho rispetto alla versione 1.1?

    Apparte fare le master detailt comodamente, se devo gestire tutto da codice come prima non è che mi cambi molto!!!! che ne pensi?

  10. #10
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    Qualche mese fa sono andato al lancio di VS 2005 a Milano. C'erano dei guru di MS che facevano delle demo miraboanti dicendo che era tutto in automatico, il codice non serviva più ed era tutto wizard.....in quel momento tutti i programmatori sorridevano un po' scettici....

    La 2.0 fa cose molto interessanti ma non si può pretendere di eliminare tutto il codice. In questo caso il controllo detailsview è già di per se fantastico e te ne sarai reso conto ma un po' di fatica devi sempre mettercela

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.