218 messaggi dal 01 maggio 2003
www.lucasweb.it
Salve, avrei bisogno di un aiuto per gestire il databinding tra un arraylist alimentato da un datagrid e un repeater.

Mi spiego.
Ho un dataReader che utilizzo per alimentare un array
(faccio questo per gestire la paginazione con la classe PagedDataSource che non funge se come fonte dati imposto il datareader ma solo se imposto array o dataTable).

L'arrayList dovrebbe contenere più valori letti nel reader (titolo, descrizione, immagine ecc.) come si fa ??
Nel senso che devo associare più valori e poi leggerli per fare il databinding sul repeater nella pagina aspx.

Spero di essere stato chiaro.
Grazie

http://www.lucasweb.it
web design & development
luxor ha scritto:
Salve, avrei bisogno di un aiuto per gestire il databinding tra un arraylist alimentato da un datagrid e un repeater.

Mi spiego.
Ho un dataReader che utilizzo per alimentare un array
(faccio questo per gestire la paginazione con la classe PagedDataSource che non funge se come fonte dati imposto il datareader ma solo se imposto array o dataTable).

L'arrayList dovrebbe contenere più valori letti nel reader (titolo, descrizione, immagine ecc.) come si fa ??
Nel senso che devo associare più valori e poi leggerli per fare il databinding sul repeater nella pagina aspx.

Spero di essere stato chiaro.
Grazie
Ciao, non comprendo esattamente questa necessità comunque puoi procedere in questo modo:
 public class MioTipo  
    {  
        private string _titolo;  
        private string _descrizione;  
        public string Titolo  
        {  
            get { return _titolo; }  
            set { _titolo = value; }  
        }  
        public string Descrizione  
        {  
            get { return _descrizione; }  
            set { _descrizione = _descrizione; }  
        }  
//etc..  
    }

quindi
IList<MioTipo> datiInArray = new List<MioTipo>();  
            foreach(MioTipo mt in qualcosa)  
{  
mt.titolo = ...;  
mt.Descrizione = ...;  
                datiInArray.Add(mt);
}

Spero sia tutto chiaro.

ciauz

Fabrizio Canevali
218 messaggi dal 01 maggio 2003
www.lucasweb.it
La necessità è che devo paginare con la class PagedDataSource che vedo quello più rapido e chiaro.
Purtroppo sembra non funzionare se imposto come datasource un dataReader.
Correggimi se sbaglio.

Siccome ho provato ad impostare un array come datasource e funziona, mi è venuto in mente di fare questo travaso dal dataReader all'array.
Se hai una diversa soluzione la accetto volentieri.

Ciao

http://www.lucasweb.it
web design & development
218 messaggi dal 01 maggio 2003
www.lucasweb.it
Ho qualche problema.

Public Class MioTipo

    Private _titolo As String
    Private _descrizione As String
    Public Titolo As String
    Public Descrizione As String

    Property myTitolo() As String
        Get
            Return _titolo
        End Get

        Set(ByVal value As String)
            _titolo = value
        End Set
    End Property

    Property myDescrizione() As String
        Get
            Return _descrizione
        End Get

        Set(ByVal value As String)
            _descrizione = value
        End Set
    End Property

End Class



Dim myList As New MioTipo
For j As Integer = 1 To 20
myList.Titolo = "mio titolo" & j
myList.Descrizione = "mia descrizione" & j
'Qui manca qualcosa credo, ma cosa ???
Next

'Inserisco l'arraylist nel pageddatasource
Dim paginazione As New PagedDataSource

paginazione.DataSource = myList 'Qui va in errore
paginazione.AllowPaging = True
paginazione.PageSize = 6
paginazione.CurrentPageIndex = numero - 1


Grazie

http://www.lucasweb.it
web design & development
'Qui manca qualcosa credo, ma cosa ???
Ciao,
nel esempio postato ho utilizzato System.Collections.Generic
IList<MioTipo> datiInArray = new List<MioTipo>(); 
Da quello che ho capito dal tuo post non aggiungi nulla alla collection.
foreach(MioTipo mt in qualcosa) 
{ 
mt.titolo = ...; 
mt.Descrizione = ...; 
datiInArray.Add(mt); 
}

Fabrizio Canevali
218 messaggi dal 01 maggio 2003
www.lucasweb.it
Il fatto è che non mi è ben chiaro quel pezzo di codice.

foreach(MioTipo mt in qualcosa) 
{ 
mt.titolo = ...; 
mt.Descrizione = ...; 
datiInArray.Add(mt); 
}


Quel "qualcosa" cosa è ?
Il mio ciclo for non va bene allora per quello che bisogna fare ?

Per adesso ho risolto alimentando un dataTable con un dataAdapter e impostandolo come datasource della pagedDataSource.
Funziona bene.
Vorrei evitare di creare il DT perchè di sicuro più lento di questo generic.

http://www.lucasweb.it
web design & development
218 messaggi dal 01 maggio 2003
www.lucasweb.it
Ho fatto, credo, un passo avanti.
Ho trovato degli esempi con questi generic.

Io devo alimentare questa lista generica con i dati presi dal datareader.
Ho fatto così, ma la lista è vuota.
Almeno non va nulla in errore.

Dim myList As New List(Of MioTipo)
        Dim j As Integer = 1

        Do While objRS.Read
            For Each listElements As MioTipo In myList
                listElements.myTitolo = "mio titolo" & j
                listElements.myDescrizione = "mia descrizione" & j
                myList.Add(listElements)

                j += 1
            Next
        Loop


Credo che il problema sia il controllo repeater nella pagina aspx
Come associo i valori della lista al controllo ?

Grazie ancora

http://www.lucasweb.it
web design & development
luxor ha scritto:
Ho fatto, credo, un passo avanti.
Ho trovato degli esempi con questi generic.

Io devo alimentare questa lista generica con i dati presi dal datareader.
Ho fatto così, ma la lista è vuota.
Almeno non va nulla in errore.

  
Dim myList As New List(Of MioTipo)  
        Dim j As Integer = 1  
  
        Do While objRS.Read  
            For Each listElements As MioTipo In myList  
                listElements.myTitolo = "mio titolo" & j  
                listElements.myDescrizione = "mia descrizione" & j  
                myList.Add(listElements)  
  
                j += 1  
            Next  
        Loop  


Credo che il problema sia il controllo repeater nella pagina aspx
Come associo i valori della lista al controllo ?

Grazie ancora
Ciao, posto il codice:
Do While objRS.Read  
                listElements.myTitolo = objRS("nome").ToString()                listElements.myDescrizione = objRS("descrizione").ToString() 
                myList.Add(listElements)  
          Loop  
 

Fabrizio Canevali

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.