94 messaggi dal 29 ottobre 2002
all'interno di un <EditItemTemplate > vorrei mettere dei campi dei quali non conosco il numero e nome perchè la vista sql si crea dinamicamente, e memorizza il numero dei campi nella variabile "x"
Ho scritto il seguente codice:

<%
Dim k

Response.Write ("<tr>")
for k=1 to x

Response.Write("<td ><%# Container.Dataitem("Campo1")%></td>")


next k
Response.Write ("</tr>")
%>

ora il problema è questo:
se scrivo
Response.Write("<td ><%# Container.Dataitem("Campo1")%></td>")
si presume che io conosca il nome del campo "Campo1", ma siccome non lo conosco, vorrei usare la variabile k che conta i campi presenti nella vista, ma non conosco la sintassi per inserire nella stringa la variabile, se scrivo ad esempio

Response.Write("<td ><%# Container.Dataitem(3)%></td>") mi visualizza il campo n° 3, ma se scrivo

Response.Write("<td ><%# Container.Dataitem(K)%></td>") mi dice che k non è definita come variabile, o altri errori.
Qualcuno sa indicarmi una soluzione? Grazie
Beh prima di tutto stai usando ASP.NET come webform e non ASP classic, quindi dimendica il <%.
La sintassi <%# agisce in fase di compilazione perciò se il numero dei campi è dinamico non puoi usare neanche questa.
Quello che puoi fare è intercettare l'evento RowCreated (non so se stai usando una GridView o qualcos'altro) e da codice crea i controlli a runtime sulla base della sorgente dati che devi già avere.
Guarda qua
http://www.aspitalia.com/script/853/Aggiungere-Controlli-Maniera-Programmatica-Controllo-ContentPlaceHolder-Master-Page.aspx
e qua http://www.aspitalia.com/script/710/Aggiungere-Colonne-DataGrid-Runtime.aspx per avere degli esempi

Ciao

Il mio blog
Homepage

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.