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

Discussione: [ASP.Net]repeater codice per riempire databinder

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

    [ASP.Net]repeater codice per riempire databinder

    ciao
    ho creato un repeater nella mia pagina .aspx-

    ho inserito questo comando nei campi che devo richiamare:
    codice:
    
    <%#DataBinder.Eval(Container.DataItem, "FileName")%>
    
    adesso devo compilare la parte Vb.....e come al solito adesso arrivano i problemi

    allora procedura per richiamare i dati:
    codice:
    
    PrivateFunction RicTesti(ByVal RiferimentoPagina AsString, ByVal RiferimentoLingua AsString) As DataTableCollection
    Dim da AsNew OleDb.OleDbDataAdapter
    Dim ds AsNew DataSet
    Try
    Dim testCMD As OleDb.OleDbCommand = New OleDb.OleDbCommand("RicercaTesti", objdb)
    testCMD.CommandType = CommandType.StoredProcedure
     
    Dim param1 As OleDb.OleDbParameter = testCMD.Parameters.Add("002", OleDb.OleDbType.Char, 3)
    param1.Direction = ParameterDirection.Input
    Dim param2 As OleDb.OleDbParameter = testCMD.Parameters.Add("001", OleDb.OleDbType.Char, 3)
    param1.Direction = ParameterDirection.Input
    param1.Value = RiferimentoPagina
    param2.Value = RiferimentoLingua
    da.SelectCommand = testCMD
    da.Fill(ds, "Articoli")
    Catch ex As Exception
    EndTry
    Return ds.Tables
    EndFunction
    
    e fin qui tutto bene

    adesso devo inserire i miei dati in un 'load' e far si che venga visualizato nel repeart.

    E qui mi sono bloccata.........

  2. #2
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...è molto semplice...una volta ottenuta la DataTable(ds.Tables contiene una collection di DataTable con indice che parte da 0) deve effettuare il bind del controllo repeater:

    codice:
    Repeater1.DataSource = ds.Tables(0)
    Repeater1.DataBind()

  3. #3
    perla0279 non è in linea Scolaretto
    Post
    230
    ho scritto questo ma mi dà errore su 'ds'

    codice:
    
    PrivateSub MyRepeater_Load(ByVal sender AsObject, ByVal e As System.EventArgs) Handles MyRepeater.Load
    IfNot IsPostBack Then
    Dim dt As DataTableCollection
    MyRepeater.DataSource = ds.Tables(0)
    MyRepeater.DataBind()
    EndIf
     
    EndSub
    

  4. #4
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...la prima cosa che mi viene in mente senza sapere l'errore che ti compare e se hai verificato che ds contiene delle DataTables
    <code>
    ds.Tables.count > 0
    </code>

  5. #5
    perla0279 non è in linea Scolaretto
    Post
    230
    Quote Originariamente inviato da SignIn Visualizza il messaggio
    ...la prima cosa che mi viene in mente senza sapere l'errore che ti compare e se hai verificato che ds contiene delle DataTables
    <code>
    ds.Tables.count > 0
    </code>

    mi spiace ma non so come fare

    comunque ho provato a modificare il codice e adesso mi visualizza la pagina però senza i dati......probabilmente la tabella è vuota o non ho collegato corretamente la tabella al bind().

    codice:
    
    PublicPartialClass brochure
    Inherits Page
    PrivateFunction RicTesti(ByVal RiferimentoPagina AsString, ByVal RiferimentoLingua AsString) As DataTableCollection
    Dim da AsNew OleDb.OleDbDataAdapter
    Dim ds AsNew DataSet
    Try
    Dim testCMD As OleDb.OleDbCommand = New OleDb.OleDbCommand("RicercaTesti", objdb)
    testCMD.CommandType = CommandType.StoredProcedure
     
    Dim param1 As OleDb.OleDbParameter = testCMD.Parameters.Add("002", OleDb.OleDbType.Char, 3)
    param1.Direction = ParameterDirection.Input
    Dim param2 As OleDb.OleDbParameter = testCMD.Parameters.Add("001", OleDb.OleDbType.Char, 3)
    param1.Direction = ParameterDirection.Input
    param1.Value = RiferimentoPagina
    param2.Value = RiferimentoLingua
    da.SelectCommand = testCMD
    da.Fill(ds, "Articoli")
    MyRepeater.DataSource = ds.Tables(0)
    MyRepeater.DataBind()
    Catch ex As Exception
    EndTry
    Return ds.Tables
    EndFunction
    PrivateSub MyRepeater_Load(ByVal sender AsObject, ByVal e As System.EventArgs) Handles MyRepeater.Load
    IfNot IsPostBack Then
    Dim ds AsNew DataSet
    Dim dt As DataTableCollection
    ds.Tables(0).Rows(0).ItemArray(0).ToString()
    MyRepeater.DataSource = ds.Tables(0)
    MyRepeater.DataBind()
    EndIf
     
    EndSub
    
    EndClass
    

  6. #6
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...come non sai come fare...l'ho scritto ....
    ...nella tua funzione RicTesti alla fine prima del return verifica che ds contenga delle DataTable:
    ds.Tables.Count è maggiore di 0 ? Se si la Tables 0 contiene delle rows?

  7. #7
    perla0279 non è in linea Scolaretto
    Post
    230
    l'ho messo qui ma mi da errore 'property access must assign to the property or use its value'

    codice:
    
    da.SelectCommand = testCMD
    da.Fill(ds, "Articoli")
    ds.Tables.count > 0
     
    Catch ex As Exception
    EndTry
    Return ds.Tables
    EndFunction
    

  8. #8
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...per forza....non c'è un if non c'è niente....hai mai usato il watch windows durante il debug?...
    ...in pratica quando metti un break(cliccando F9) su una determinata riga di codice, selezioni un oggetto come per esempio il Dataset(ds) e premendo shift F9 puoi controllare le varie property dell'oggetto selezionato....

  9. #9
    perla0279 non è in linea Scolaretto
    Post
    230
    ho fatto

    codice:
    
    PublicPartialClass brochure
    Inherits Page
    PrivateFunction RicTesti(ByVal RiferimentoLingua AsString) As DataTableCollection
    Dim da AsNew OleDb.OleDbDataAdapter
    Dim ds AsNew DataSet
    Try
    Dim testCMD As OleDb.OleDbCommand = New OleDb.OleDbCommand("RicercaBrochure", objdb)
    testCMD.CommandType = CommandType.StoredProcedure
     
    Dim param1 As OleDb.OleDbParameter = testCMD.Parameters.Add("001", OleDb.OleDbType.Char, 3)
    param1.Direction = ParameterDirection.Input
     
     
    param1.Value = RiferimentoLingua
     
    da.SelectCommand = testCMD
    da.Fill(ds, "Brocure")
     
     
     
    Catch ex As Exception
    EndTry
    Return ds.Tables
    EndFunction
    
    ProtectedSub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMe.Load
    Dim dt As DataTableCollection
    dt = RicTesti("001")
    MyRepeater.DataSource = dt.Item(0)
    MyRepeater.DataBind()
    EndSub
    EndClass
    

    un altro problemino

    Se volessi che la colonna 1 (dove sono tutte immagini) scrivesse in automatico da codice l'html per inserire immagini ......

    provo a spigarmi meglio:
    adesso ho fatto così:
    codice:
    
    <imgsrc="<%#DataBinder.Eval(Container.DataItem, "Immagine")%>"></td>
    
    ma vorrei che venisse scritto da codice direttamente.
    Sempre se si può fare.

  10. #10
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...uhm non ho capito cosa vuoi fare

+ 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