C# Asp.net Utilizzo Repeater o Datalist (informazione)

giovedì 15 giugno 2006 - 09.59

bluelions Profilo | Senior Member

Scusate una domanda, ma l'oggetto Repeater o Datalist, per caricarmi dei valori lo devo per forza associare ad una base dati?
Cioè,mi spiego meglio nell'header del mio Repeater,dovrei caricarmi un nome e al fianco dei valori tipo 1 2 3, se metto una sola label e poi faccio un for che va da 1 a 3.....dovrei vedere tre label, invece io ne vedo una sola con l'ultimo numero in questo caso 3.
ho fatto cosi

for (int i=1;i<3;i++)
{
label lbl1 =(label)e.item.findcontrol("lbl1")
lbl1.text=i;
}

Brainkiller Profilo | Guru

>Scusate una domanda, ma l'oggetto Repeater o Datalist, per caricarmi
>dei valori lo devo per forza associare ad una base dati?
>Cioè,mi spiego meglio nell'header del mio Repeater,dovrei caricarmi
>un nome e al fianco dei valori tipo 1 2 3, se metto una sola
>label e poi faccio un for che va da 1 a 3.....dovrei vedere tre
>label, invece io ne vedo una sola con l'ultimo numero in questo
>caso 3.
>ho fatto cosi

Nel tuo ciclo ripeti sempre la stessa cosa, ossia prendi il riferimento alla lbl1 e le assegni il valore di i. Dove c'è scritto che ci dovrebbero essere 3 Label ? O le hai definite nel Template oppure devi crearle ed aggiungere dinamicamente.

Label l=new Label(); Contenitore.Controls.Add(l);

Se invece ti basta una ma vuoi 3 numeri 1 2 3 in questo modo concatena il testo con:

lbl1.text += i.ToString() + " ";

Ciao


David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

bluelions Profilo | Senior Member

ok,e poi scusa ancora il nome delle label come viene definito? Che nome assegnerà il compilatore?

Brainkiller Profilo | Guru

>ok,e poi scusa ancora il nome delle label come viene definito?
>Che nome assegnerà il compilatore?

Puoi specificarlo tu:

Label l=new Label(); l.ID="Label" + i.ToString();

Poi dipende potrebbe anche cambiare nome perchè il Framework li genera dinamicamente. In ogni caso il problema non si pone perchè poi possono esssere facilmente enumerate se non sai il nome a priori.

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

bluelions Profilo | Senior Member

scusa ancora una domanda....io nel mio DataList, ho caricato questi valori che in pratica sarebbero giorni che va da 1 a 31 ed ho impostato il foglio di style che me li fa vedere come se fossero disabilitati.....ora però dovrei fare una cosettina un po particolare.....dovrei rendere attivi e quindi come se fossero in grassetto, l'intervallo di gironi che prendo da un db,dove ho due campi tipo data, es. 10/05/2006 - 20/05/2006 ora prendere questi intervallo e abilitare solo quelle label......
E' poi facendo così:
for (int i = 1; i <= 31; i++)
{
TextBox txtGiorni = new TextBox();
dllista.Controls.Add(txtGiorni);

}
ho un errore

Unable to cast object of type 'System.Web.UI.WebControls.TextBox' to type 'System.Web.UI.WebControls.DataListItem'.

Brainkiller Profilo | Guru

>Unable to cast object of type 'System.Web.UI.WebControls.TextBox'
>to type 'System.Web.UI.WebControls.DataListItem'.

Attenzione, ti ho segnalato che l'oggetto su cui Aggiungere le Label dev'essere un Container, tipo PlaceHolder. dllista di che tipo è ? Come vedi accetta solo oggetti di tipo DataListItem.
Tu mi hai parlato di Header di un Repeater o sbaglio ?
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

bluelions Profilo | Senior Member

eh si, ma utilizzo un datalist però.......
comuque se ti mando uno schema del mio datalist, i daresti un aiuto? E' un po complessa la situazione....

Brainkiller Profilo | Guru

Più che altro cerca di spiegarmi il meccanismo cioè che cosa esattamente vuoi realizzare, e perchè, e come deve comportarsi il DataList.
Da quello che ho capito per ora tu vuoi modificare l'HEader di un data list ? ma per metterci dentro cosa, dei link ? E questi link che cosa devono fare una volta selezionati ?
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

bluelions Profilo | Senior Member

Allora ti spiego ciò che esattamente dovrei fare. Nell'header del data list dovrei caricare un nome e i giorni del mese, tipo
Nome 1 2 3 4 5 6 fino a 31. però crearla dinamicamente, perchè poi in base ad alcune operazioni come ti dicevo intervallo di data dovrò abilitare o menodei giorni, es. se ho un intervallo che va dal 10 al 15 dovrei abilitare solo i numeri dal 10 a 15.
e questo tutto nell'hearder
Poi nell'ItemTemplate mi carico una serie di dati ed inoltre sotto ad ogni numero dei giorni avrò una text che inserisco dei valori ed anche qui dovrei caricarla dinamicamente. Quello che mi domando è possibile avere un esempio di un datalist e di come caricare dinamicamente questi oggetti?
Non so se sono stato chiaro.
Grazie per la disponibilità

Brainkiller Profilo | Guru

Vediamo se ho capito. Guarda questa screenshot:


540x250 8Kb


Mi sembra che è ciò che vuoi, viene realizzato con questo codice nella pagina .aspx:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

e questo nel code behind:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Naturalmente nel Page_Load devi creare un DataSet con i dati ed assegnarlo al DataList. Nel mio esempio la colonna che ho usato che riempie i quadrati è UserID. Modificala a tuo piacimento nella pagina .aspx.

Ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

bluelions Profilo | Senior Member

ok, ottimo.....è proprio questo che dovevo fare....
Ora provo a gestire il codice.
Gentilissimo.

Brainkiller Profilo | Guru

Accettami la risposta con l'apposito link se funziona cosi il thread è marcato come risolto
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5