+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: [ASP.Net]Richiamare testi da un database per inserirli in un FormView

  1. #1
    perla0279 non è in linea Scolaretto
    Post
    230

    [ASP.Net]Richiamare testi da un database per inserirli in un FormView

    Ciao a tutti
    faccio una premessa per spiegare velocemente il progetto, in modo da agevolare chi mi volesse aiutare (ne ho un assoluto bisogno perchè non ne vengo più fuori)

    Sto creando un sito web per l'azienda dove lavoro.
    L'ambiente di sviluppo è visual studio 2005.

    Lo sviluppo della applicazione è esenzialmente questo:
    - ho creato una tabella in un database sql, chiamata 'dizionario' (campi : codicePagina, CodiceLingua, CampoPagina, CodicePrompt, prompt, Descrizione, immagini (con link di collegamento es. images/logo.gif ) , Righa)
    La motivazione è che a seconda della lingua voglio chiamare testi diversi e poi per rendere dinamico il cambio dei contenuti e l'aggiornamento.....cioè senza aprire ogni volta di nuovo il progetto e cambiarli manualmente. :-)

    - Ho fatto in modo che ogni pagina avesse un codicePagina (es. Index codicePagina= 001,.....), la lingua ha il suo codice, e inoltre ho inserito un codice per inserire il testo all'interno della pagina, cioè ho codificato le varie posizioni di testo ed immagini.



    Ho creato sulla pagina aspx il campo FormView relativo al primo campo da inserire e alla prima immagine (la pagina è composta, in questo caso da immagine in una cella della tabella, e nella cella subito dopo il relativo testo)

    codice:
    <asp:FormView ID="FormView1" runat="server" > 
    <EditItemTemplate> 
    Descrizione: 
    <asp:TextBox ID="DescrizioneTextBox" runat="server" Text='<%# Bind("Descrizione") %>'> 
    </asp:TextBox><br /> 
    <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" 
    Text="Update"> 
    </asp:LinkButton> 
    <asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" 
    Text="Cancel"> 
    </asp:LinkButton> 
    </EditItemTemplate> 
    <InsertItemTemplate> 
    Descrizione: 
    <asp:TextBox ID="DescrizioneTextBox" runat="server" Text='<%# Bind("Descrizione") %>'> 
    </asp:TextBox><br /> 
    <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" 
    Text="Insert"> 
    </asp:LinkButton> 
    <asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" 
    Text="Cancel"> 
    </asp:LinkButton> 
    </InsertItemTemplate> 
    <ItemTemplate> 
    Descrizione: 
    <asp:Label ID="DescrizioneLabel" runat="server" Text='<%# Bind("Descrizione") %>'> 
    </asp:Label><br /> 
    </ItemTemplate> 
    </asp:FormView>
    - questo è stato creato con il Tool di visual studio 2005 nella parte grafica della pagina index.aspx


    Nella parte di codice VB ho scritto questo:
    codice:
    Protected Sub FormView1_PageIndexChanging(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.FormViewPageEventArgs) 
    Dim da As New OleDb.OleDbDataAdapter 
    Dim ds As DataSet = New DataSet 
    'Ricerca testo nel databse attraverso la query 
    Try 
    Dim testCMD As OleDb.OleDbCommand = New OleDb.OleDbCommand("RicercaTesti", objDb) 
    testCMD.CommandType = CommandType.StoredProcedure 
    
    Dim RetValue As OleDb.OleDbParameter = testCMD.Parameters.Add("001", OleDb.OleDbType.Numeric) 
    RetValue.Direction = ParameterDirection.ReturnValue 
    
    Dim param1 As OleDb.OleDbParameter = testCMD.Parameters.Add("param1", OleDb.OleDbType.VarChar, 80) 
    param1.Direction = ParameterDirection.Input 
    param1.Value = dato 
    
    da.SelectCommand = testCMD 
    
    da.Fill(ds, "Articoli") 
    Catch ex As Exception 
    
    End Try 
    
    End Sub
    - Praticamente la storeprocedure mi riporta a seconda della pagina e della lingua (due parametri passati) i testi relativi a quella pagina....... cioè tutti i testi senza distinguere la posizione in cui vanno indicati.

    .............a questo punto vi chiedo aiuto, perchè non so più come procedere.

    - Non sò come fare in modo che ogni campo FormView inserito nelle pagine aspx mi richiami un parametro relativo al testo o ad immagine in questa tabella che ho creato datta store procedure in vb.

    - Inoltre non sò in VB come fare in modo che i dati vengano visualizati, adesso praticamente sono fermi qui ' da.Fill(ds, "Articoli")'........adesso dove li metto per poi richiamarli in modo corretto nelle pagine.


    Aiutooooooooooo
    Grazie a tutti quelli che mi risponderanno
    Elena
    Ultima modifica di perla0279; 21-11-2007 11:09 

  2. #2
    L'avatar di cippalippa
    cippalippa non è in linea Topo di biblioteca
    Post
    2,526
    Ciao Elena, io non mi sono mai occupato di internet, quindi ti posso aiutare solo parzialmente.
    Per collegare un controllo (es. una textbox) puoi scegliere due strade:

    Con il databinding:
    TextBox1.DataBindings.Add("Text", ds, "Articoli.NomeCampo")

    Oppure con copia del tasto dal dataset:
    TextBox1.text = ds.Tables("Articoli").Rows(X).Item(Y)
    dove X e Y sono le coordinate del record e del campo in base 0.
    Se ascolto conosco, se vedo capisco, se faccio imparo.

  3. #3
    perla0279 non è in linea Scolaretto
    Post
    230
    ciao

    pultroppo in VB non sono molto brava................quindi non ho capito come fare per tirarmi fuori quei dati.?????

  4. #4
    L'avatar di cippalippa
    cippalippa non è in linea Topo di biblioteca
    Post
    2,526
    Ho fatto un database di esempio, lo puoi scaricare qui:

    http://forum.masterdrive.it/articoli...ado-vb6-17965/
    Se ascolto conosco, se vedo capisco, se faccio imparo.

  5. #5
    perla0279 non è in linea Scolaretto
    Post
    230
    allora grazie ad un utente che mi ha aiutato sono riuscita ad andare avanti qualcosina...........

    Nella parte VB ho usato questo codice:
    codice:
    
    ProtectedSub Repeater1_ItemCommand(ByVal source As System.Object, ByVal e As System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles Repeater1.ItemCommand
    Dim da AsNew OleDb.OleDbDataAdapter
    Dim ds As DataSet = New DataSet
    'Ricerca testo nel databse attraverso la query
    Try
    Dim testCMD As OleDb.OleDbCommand = New OleDb.OleDbCommand("RicercaTesti", objDb)
    testCMD.CommandType = CommandType.StoredProcedure
    'Dim RetValue As OleDb.OleDbParameter = testCMD.Parameters.Add("001", OleDb.OleDbType.Numeric)
    'RetValue.Direction = ParameterDirection.ReturnValue
    Dim param1 As OleDb.OleDbParameter = testCMD.Parameters.Add("001", OleDb.OleDbType.Char, 3)
    param1.Direction = ParameterDirection.Input
    'param1.Value = dato
    Dim param2 As OleDb.OleDbParameter = testCMD.Parameters.Add("001", OleDb.OleDbType.Char, 3)
    param1.Direction = ParameterDirection.Input
    'param1.Value = dato
    da.SelectCommand = testCMD
    da.Fill(ds, "Testi")
    Repeater1.DataSource = ds
    Repeater1.DataBind()
     
     
     
    Catch ex As Exception
    EndTry
    EndSub
    


    Praticamento uso una store procedure che mi richiama tutti i campi di pagina.

    Nella parte aspx ho usato un campo Repeater, perche mi permette di formatare in modo abbastanza libero le tabelle che inserisco.

    codice:
    
    <asp:PanelID="Panel1"runat="server"Height="50px"Width="292px">
    &nbsp;
    &nbsp;<asp:RepeaterID="Repeater1"runat="server"DataSourceID="sitoidsistemi">
    
    <itemtemplate> <%#DataBinder.Equals(Container.dataitem, "prompt")
    %>
    
    </itemtemplate>
    
    
    </asp:Repeater>
    



    Adesso ho ancora questo grosso problema per cui necessito ancora del vostro aiuto.

    Adesso ho i dati di tutti i testi (identificati come codicecampo) della pagina di riferimento.
    Ogni codicecampo ha un testo di riferimento


    - Devo trovare il modo di identificare i campo nella pagina aspx con una codifica che grosso modo sarà questa
    001
    002
    003
    004
    .....



    - Devo fare in modo da codice VB che ad agni codice identificativo venga associato il relativo campo di tabella.

    quindi al valore campo 001...........nel codice VB devo identificare nella tabella a quale riga corrisponde per visualizzare solo quello.


    Non so proprio come fare
    Confido in voi
    aiuto

  6. #6
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...questa discussione è su asp.net dovrebbe essere spostata...a parte questo non ho capito bene il tuo problema...cioè tu vuoi associare il ocdice 001(db) al relativo controllo sulla form?

  7. #7
    L'avatar di cippalippa
    cippalippa non è in linea Topo di biblioteca
    Post
    2,526
    Ti ripeto quello che ti ho già scritto ieri:
    Per collegare un controllo (es. una textbox) puoi scegliere due strade:

    Con il databinding:
    TextBox1.DataBindings.Add("Text", ds, "Testi.NomeCampo")

    Oppure con copia del tasto dal dataset:
    TextBox1.text = ds.Tables("Testi").Rows(X).Item(Y)
    dove X e Y sono le coordinate del record e del campo in base 0.

    Questo nel caso tu utilizzi un form di VB.
    Se usi internet, non conosco ASP.NET

    Cerco di essere più chiaro:
    Hai scritto: "nel codice VB devo identificare nella tabella a quale riga corrisponde per visualizzare solo quello".

    Se vuoi collegarti a un campo (p.e. ID, che di solito è il primo della tabella) devi scrivere:

    TextBox1.DataBindings.Add("Text", ds, "Testi.ID")

    oppure identificando la tabella con le coordinate:
    TextBox1.text = ds.Tables("Testi").Rows(X).Item(0)
    L'item 0 è il primo a sinistra, quello ID.
    Se non ti torna, dimmi cosa non va.
    Se ascolto conosco, se vedo capisco, se faccio imparo.

  8. #8
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Quote Originariamente inviato da cippalippa Visualizza il messaggio
    Ti ripeto quello che ti ho già scritto ieri:
    ....
    Se usi internet, non conosco ASP.NET
    ....
    ...come se usi internet?....mi sbaglio o si sta parlando di web application(...esiste il concetto di aspx in windows form? => no)....punto secondo i due esempi che hai fatto sono adatti ad una windows application(anzi per essere precisi il secondo si può anche applicare in una web application peccato che usa un controllo Repeater che non ha nulla a che vedere con una textbox)...

  9. #9
    L'avatar di cippalippa
    cippalippa non è in linea Topo di biblioteca
    Post
    2,526
    Infatti hai detto con altre parole quello che ho specificato io...
    Io gli ho fatto un esempio in VB.NET di collegamento a una textbox, lo dovrà adattare al suo controllo...

    Io non conosco ASP, non so se è nello stesso modo, ma lei ha detto che lo deve fare in VB.

    Per quanto riguarda il repeater:
    ho letto ieri in un libro che non esiste in .NET... Ha usato il componente .COM?

    Elena, non ti converrebbe porre questi quesiti nella sezione ASP?
    Se ascolto conosco, se vedo capisco, se faccio imparo.

  10. #10
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Quote Originariamente inviato da cippalippa Visualizza il messaggio
    Infatti hai detto con altre parole quello che ho specificato io...
    ...non credo proprio..
    Quote Originariamente inviato da cippalippa Visualizza il messaggio
    Io gli ho fatto un esempio in VB.NET di collegamento a una textbox, lo dovrà adattare al suo controllo...
    assolutamente no...dato che non sai come funziona il controllo Repeater...
    Quote Originariamente inviato da cippalippa Visualizza il messaggio
    Io non conosco ASP, non so se è nello stesso modo, ma lei ha detto che lo deve fare in VB.
    ...e che significa...i due mondi windows e web sono molto differenti...
    Quote Originariamente inviato da cippalippa Visualizza il messaggio
    Per quanto riguarda il repeater:
    ho letto ieri in un libro che non esiste in .NET... Ha usato il componente .COM?
    ...se per caso hai consultato un libro che tratta solo di windows form allora per forza non hai trovato nulla al riguardo...altrimenti fidati esiste e non è COM
    Quote Originariamente inviato da cippalippa Visualizza il messaggio
    Elena, non ti converrebbe porre questi quesiti nella sezione ASP?
    ...stessa proposta che avevo fatto...vedere sopra

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi