Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
CME ASSEGNARE UN VALORE AD UNA LABEL IN UN DATALIST
giovedì 29 aprile 2004 - 17.26
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
LorenaPalomba
Profilo
| Newbie
3
messaggi | Data Invio:
gio 29 apr 2004 - 17:26
Ho creato un datalist e nella sezione
SelectItem ho inserito una lebel che
è valorizzata da un metodo nel presente nel codebehind
della pagina.
Per fare riferimento alla label faccio
uso del metodo FindControl del Datalist
che prende come paramatri l'id della label.
Label MyLabel=(Label)dtlElencoServizi.FindControl("lblFunctions");
Ma pare che non trovi la label, anzi sembra che il metodo
trovi solo i controlli presenti nella sezione ItemTemplate.
Qualcono sa darmi una mano?????
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 30 apr 2004 - 00:22
Ciao,
allora per poter usare il metodo FindControl devi farlo dentro l'evento OnItemDataBound quando i Dati stanno per essere bindati al controllo. Quindi dovrai usare nel file .aspx questo codice per esempio:
<asp:DataList id="ItemsList" GridLines="Both" CellPadding="3" CellSpacing="0" runat="server">
<SelectedItemTemplate>
<asp:Label id="QtyLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Qty") %>' runat="server"/>
</SelectedItemTemplate>
</asp:DataList>
e poi nel code-behind questo che ti permette di modificare il testo della Label Qty:
private void ItemsList_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if (e.Item.ItemType==ListItemType.SelectedItem)
{
Label k=(Label)e.Item.FindControl("QtyLabel");
k.Text="CIAO";
}
}
ciao
david
LorenaPalomba
Profilo
| Newbie
3
messaggi | Data Invio:
ven 30 apr 2004 - 10:30
Grazie per il tuo valido aiuto.
Un collega mi ha però suggerito un'altra
soluzione.
Nell'evento SelectedIndexChanged invocare prima il metodo
Databind del Datalist e poi invocare il metodo
findControl.
In questo modo funziona.
private void dtlServizi_SelectedIndexChanged(object sender, System.EventArgs e)
{
dtlServizi.DataBind();
DataList dtlFunzioni=(DataList)dtlServizi.SelectedItem.FindControl("Label");
}
Tu sai dirmi quale delle due soluzioni è quella più valida?
Ciao
Lorena
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 30 apr 2004 - 10:53
Ciao,
nel mondo dell'informatica si può risolvere un problema in vari modi fortunatamente.
Quindi se anche questa soluzione funzion, tanto meglio.
Una volta che riesci a raggiungere il tuo obbiettivo magari scrivendo codice elegante sei a posto.
Valuta le due soluzioni e scegli tu :)
ciao
david
Torna su
Stanze Forum
Elenco Threads
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 !