|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Mar 2009
Messaggi: 19
|
[asp.net]contentplaceholder in modo dinamico
ciao a tutti ho un problema,volevo sapere se è possibile caricare in modo dinamico dei controlli dentro un contentplaceholder... in che senso
io ho una pagina passata tramite get,faccio una query e mi vedo quale pagina e quali controlli caricarmi...adesso viene il problema come faccio a dire in che parte della pagina deve caricarsi i controlli??? ho pensato di usare dei contentplaceholder di prendermi il nome da db e aggiungere il controllo ascx ed è qua che ho il problema come faccio a prendere il campo da db e a dirgli è questo il contetplaceholder? //mi prendo l'id del contenitore e per ognugno carico gli eventuali controlli for (int i = 0;lista_contenitore.Count !=i ; i++) { ArrayList lista_moduli = conn_bd.ListaModuli(Request.QueryString.Get("id"), lista_contenitore[i].ToString()); //carico tutti i controlli dentro al contetplaceholder for (int j = 0; lista_moduli.Count != j; j++) { ContentPlaceHolder cicciobuffo = new ContentPlaceHolder(); //ecco il problema sperò risolvibile Sigh cicciobuffo= ContentProva; //carico il controllo nel contenitore Control contr = LoadControl(conn_bd.VisualizzaModulo(lista_moduli[j].ToString())); cont.Controls.Add(contr); } } |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
1) il controllo PlaceHolder é fatto apposta per casi come il tuo
![]() 2) all'inizio del lifecycle della pagina creati un dictionary <string, PlaceHolder> e popolalo usando l'ID del placeholder Codice:
var holders = new Dictionary<string, PlaceHolder>(); foreach (Control ctl in Page.Controls) { if (ctl is PlaceHolder) { var holder = (Dictionary<string, PlaceHolder>)ctl; holders.Add(holder.ID, holder); } } Codice:
DataRow row = GetDataRow(); // your logic var myControl = GetMyControl(row); // your logic string holderName = row.Field<string>("PlaceHolderName"); holders[holderName].Controls.Add(myControl); ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
chissà se funziona...
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:59.