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 2.0 / 3.5 / 4.0
DropDownList runtime in un gridview
mercoledì 01 ottobre 2008 - 17.42
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Gemini
Profilo
| Expert
856
messaggi | Data Invio:
mer 1 ott 2008 - 17:42
Ciao a tutti,
ho inserito runtime una dropdownlist in una gridview.
Il mio problema è che non so come far selezionare, all'interno della della dropdownlist, l'elemento letto dal database.
Questo è il mio codice:
public class myGridViewTemplate : ITemplate
{
public myGridViewTemplate()
{
}
//Implemento il metodo astratto InstantiateIn dell'Interfaccia ITemplate
//Questo metodo sarà richiamato automaticamente
public void InstantiateIn(System.Web.UI.Control container)
{
DropDownList ddlOnWeb = new DropDownList();
ddlOnWeb.CssClass = "text_box";
// ddlOnWeb.SelectedValue="<%# Bind ("status") %>" ;
ddlOnWeb.Items.Add(new ListItem("NO", "NO"));
ddlOnWeb.Items.Add(new ListItem("SI", "SI"));
ddlOnWeb.DataValueField = "";
ddlOnWeb.DataTextField = "";
//a questo punto vorrei inizializzare la dropdown
//con un valore presente nel datasource
//inutile dire che eventuali valori assegnati a
//DataValueField e DataTextField vengono ignorati
container.Controls.Add(ddlOnWeb);
}
}
//nella in cui inserisco la gridview, aggiungo la colonna solo quando mi serve
private void aggiorna ()
{
if(condizione)
{
TemplateField tf = new TemplateField();
tf.HeaderText = "su Web";
tf.ItemTemplate = new myGridViewTemplate();
grvElencoCamere.Columns.Add(tf);
}
grvElencoCamere.DataSource = myDataSource;
grvElencoCamere.DataBind();
}
Grazie mille
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
mer 1 ott 2008 - 18:04
prova con questa istruzione son sicuro che ti servira
se il valore salvato nel db è il testo della tua DDL puoi fare così:
DDL_tuo.SelectedIndex = DDL_tuo.Items.IndexOf(DDL_tuo.Items.FindByText(.Item(campo_DB).ToString))
oppure se il tuo valore salvato nel DB e l'index della tua DDl fai in quest'altra maniera:
DDL_tuo.SelectedIndex = DDL_tuo.Items.IndexOf(DDL_tuo.Items.FindByValue(.Item(campo_DB).ToString))
buon lavoro
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
Gemini
Profilo
| Expert
856
messaggi | Data Invio:
mer 1 ott 2008 - 18:29
Ciao, grazie per la risposta.
Ci sono 2 piccoli problemi:
1- credo che ci sia un errore di scrittura che non riesco a interpretare:
.Item("disponibile_web").ToString() nella istruzione
ddlOnWeb.SelectedIndex = ddlOnWeb.Items.IndexOf(ddlOnWeb.Items.FindByText(.Item("disponibile_web").ToString()));
2 - Il mio problema è che il datasource è esterno alla classe che ilmplemanta iltemplate con la dropdownlist, per cui non riesco a settare il campo del datasource che serve ad inizializzarla
se avessi usato i tag avrei utilizzato senza problemi
SelectedValue='<%# Bind ("campo) %>' nel tag asp_dropdownlist ...
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
mer 1 ott 2008 - 18:51
per il ".item", puoi risolverlo mettendo prima del punto il datasource
[ddlOnWeb.SelectedIndex = ddlOnWeb.Items.IndexOf(ddlOnWeb.Items.FindByText(DATASOURCE.Item("disponibile_web").ToString()));], allora vediamo il secondo punto....
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
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 !