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

    Non mi visualizza i dati all'interno di un Repeater

    ragazzi ho un problema con un repeater

    il mio repeater è contenuto in una pagina .aspx e al suo interno ci ho piazzato dei TextBox come questo

    <ASP:TextBox CssClass="textarea" id="cod" runat="server" Text='<%# Container.DataItem("cod") %>' maxlength="20" />

    per visualizzare i dati attualmente inseriti ed eventualmente modificarli

    il problema è che non mi da nessun errore ma non mi visualizza nulla solo la prima riga di una tabella che è stampata attraverso il codice HTML normale
    per quale motivo?
    il codice sta in un file .vb
    dove ovviamente dichiaro il repeater e tutti gli elementi (label TextBox etc) come public

    per recuperare i dati nella sub Page_Load utilizzo il seguente codice

    Sub Page_Load(obj as object, e as eventargs)
    IF NOT Page.ISPostBack THEN
    IF valtype = "mod" THEN
    rptModificaCanc.Visible = false
    titoloPagina.Text = "Modifica Prodotto"
    dim stringQuery as string = "SELECT etc etc"
    dim objSelect = new dbAccess
    rptModifica.DataSource = objSelect.SelectSql(stringQuery)
    DataBind()
    ELSE IF valtype = "canc" THEN
    rptModifica.Visible = False
    titoloPagina.Text = "Cancella Prodotto"
    dim stringQuery as string = "SELECT etc etc"
    dim objSelect = new dbAccess
    rptModificaCanc.DataSource = objSelect.SelectSql(stringQuery)
    DataBind()
    END IF
    END IF
    end sub

    da notare che il titolo della pagina esterno al Repeater me lo stampa correttamente

    la funzione SelectSQL sta in un file appositamente progettato per interagire con il db e ha il seguente codice

    public function SelectSQL(strSelect as string) as OleDbDataReader
    try
    objConn = new OleDbConnection(ConnectionString)
    objCmd = new OleDbCommand(strSelect, objConn)
    objCmd.Connection.Open
    return objCmd.ExecuteReader
    objCmd.Connection.Close()
    catch ex as OleDbException
    return nothing
    end try
    end function

    suggerimenti?

  2. #2

    Re: Non mi visualizza i dati all'interno di un Repeater

    Originariamente inviato da brutusin
    ragazzi ho un problema con un repeater
    il problema non credo tu ce l'abbia col repeater ma semmai con la funzione che "dovrebbe" tornarti un datareader. Come gia' detto piu' volte sul forum, il datareader e' un oggetto per sua natura connesso che nasce vive e muore assieme alla sua connessione. Quindi non puoi farti restituire un repeater e usarlo in maniera indipendente dalla sua connessione. La tua funzione esterna invece di restituire un repeater dovrebbe ad esempio restituire una datatable.
    Saluti a tutti
    Riccardo

  3. #3
    si ma come mai quando utilizzavo la stessa identica funzione con mySQL (e quindi ero in presenza di un ODBCDataReader e non OleDbDataReader ) tutto funzionava a meraviglia?

    e come mai con un dataGrid funziona ?

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    avrei scommesso che il problema fosse nella funzione, ma, sigh! funziona!
    ma non è che il tuo repeater abbia l'attributo visible=false?

    comunque, l'ho provato così e funziona:
    codice:
        Public Function SelectSQL(ByVal strSelect As String) As OleDbDataReader
            Dim objConn As OleDbConnection
            Dim objCmd As OleDbCommand
            Try
                objConn = New OleDbConnection(StringaConnessione)
                objCmd = New OleDbCommand(strSelect, objConn)
                objCmd.Connection.Open()
                Return objCmd.ExecuteReader
                objCmd.Connection.Close()
            Catch ex As OleDbException
                Return Nothing
            End Try
        End Function
    nell'evento load:
    codice:
            If Not Page.IsPostBack Then
                BindData()
            End If
    e la funzione BindData:
    codice:
        Private Sub BindData()
            Dim stringaSQL$ = "SELECT ID FROM CAMPI ORDER BY ID"
            Dim Reader As OleDbDataReader = SelectSQL(stringaSQL)
            Me.Repeater1.DataSource = Reader
            Me.Repeater1.DataBind()
            Reader.Close()
    
    
        End Sub
    Pietro

  5. #5
    niente non c'è nulla da fare !
    il problema è che non mi da nessun errore particolare
    ma non mi visualizzare tutto il codice contenuto nel repeater!

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da brutusin
    niente non c'è nulla da fare !
    il problema è che non mi da nessun errore particolare
    ma non mi visualizzare tutto il codice contenuto nel repeater!
    senti, non è possibile . Ho preso il tuo codice, l'ho sbattuto in una pagina di prova, ho preso la prima tabella sotto tiro e funziona
    mi dispiace, di più non so
    Pietro

  7. #7
    anche per me non è possibile però davvero non mi visualizza nulla !!! e peggio ancora non mi da errore!
    ignora proprio il Repeater !!
    io davvero non so cosa fare!

  8. #8
    Originariamente inviato da brutusin
    ignora proprio il Repeater !!
    io davvero non so cosa fare!
    hai provato a mettere un breackpoint nel codice per verificare in debug se il datareader restituito contiene delle righe?
    Saluti a tutti
    Riccardo

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da brutusin
    anche per me non è possibile però davvero non mi visualizza nulla !!! e peggio ancora non mi da errore!
    ignora proprio il Repeater !!
    io davvero non so cosa fare!

    Molla tutto per adesso e preparati una pastasciutta con spaghettini e polpa di ricci di mare se non ne hai, allora usa bottarga di muggine, olio di oliva e peperoncino.

    Dopo, riprendi il file e controlla: sicuramente l'errore è una stupidaggine
    Pietro

  10. #10
    ecco qui dove mi crea casino

    Sub CreaDropDownListValore(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs)
    'id = Request.QueryString("id")
    dim valoreSottoCategoriaMerceologica as integer
    dim querySingoloValore as string = "SELECT sottocategoriamerceologica as campodaselezionare FROM tbtabacchi WHERE id = "& id &""
    dim objSelect = new dbAccess
    valoreSottoCategoriaMerceologica = CINT(objSelect.SelezionaValore(querySingoloValore) )
    dim strSelect as string = "SELECT nomesottocategoriamerceologica,id FROM tbsottocategoriamerceologica WHERE idcategoriamerceologica = 1 ORDER BY nomesottocategoriamerceologica ASC"

    Dim objReader as OleDbDataReader
    objReader = objSelect.SelectSql(strSelect)
    dim l, k as integer
    l = 0
    k = 0
    visualizzaSottoCategorie = new DropDownList
    visualizzaSottoCategorie = CType(e.Item.FindControl("visualizzaSottoCategorie "), DropDownList)

    WHILE objReader.Read
    visualizzaSottoCategorie.Items.Add(new listItem(objReader.Getstring(0),objReader.Getstrin g(1)))
    if objReader.GetString(1) = valoreSottoCategoriaMerceologica THEN
    k = l
    End If
    l = l + 1
    END WHILE
    visualizzaSottoCategorie.selectedindex = k
    visualizzaSottoCategorie.DataBind()
    End Sub

    questa è una funzione associata all'evento OnItemDataBound="CreaDropDownListValore" e che mi recupera il valore memorizzato come sottocategoria merceologica e me lo imposta in automatico sulla dropdownlist

    ho appurato che togliendo queste righe di codice

    visualizzaSottoCategorie = new DropDownList
    visualizzaSottoCategorie = CType(e.Item.FindControl("visualizzaSottoCategorie "), DropDownList)

    WHILE objReader.Read
    visualizzaSottoCategorie.Items.Add(new listItem(objReader.Getstring(0),objReader.Getstrin g(1)))
    if objReader.GetString(1) = valoreSottoCategoriaMerceologica THEN
    k = l
    End If
    l = l + 1
    END WHILE
    visualizzaSottoCategorie.selectedindex = k
    visualizzaSottoCategorie.DataBind()

    il repeater compare
    mentre con il codice iniziale (che funzionava quando usavo il db mySQL) mi da l'errore

    Il valore dei dati non può essere convertito per ragioni diverse dalla mancata corrispondenza dei segni o dall'overflow. È ad esempio possibile che i dati siano stati danneggiati nell'archivio pur restando possibile il recupero della riga.

    associato a questa riga di codice

    Riga 58: visualizzaSottoCategorie.Items.Add(new listItem(objReader.Getstring(0),objReader.Getstrin g(1)))

    mo vado a farme due spaghi!!!
    sarà il caso

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.