Primi problemi in asp.net

martedì 21 dicembre 2010 - 15.47
Tag Elenco Tags  C#  |  .NET 3.5  |  Windows XP  |  Visual Studio 2008  |  SQL Server 2008

stellare21 Profilo | Newbie

Salve sto cercando di far funzionare una prima pagina con 2 semplici text box e un button al click del button si dovrebbe generare un post back ke mi restituisca quello che l'utente ha inserito nelle textbox dentro il literal questo il pezzo di codice nella aspx

<asp:Label ID="Label1" runat="server" Text="inserisci email"></asp:Label> <asp:TextBox ID="email" Columns="26" runat="server" /><br /> <asp:Label ID="Label2" runat="server" Text="inserisci password"></asp:Label> <asp:TextBox ID="password" Columns="26" TextMode="Password" runat="server" /> <asp:Button ID="send" Text="registrati" runat="server" onclick="send_Click" /><br /> <asp:Literal ID="Literal1" runat="server"></asp:Literal>

questo invece è l'evento che cerco di gestire nell'aspx.cs

protected void Page_Load(object sender, EventArgs e) { } protected void send_Click(object sender, EventArgs e) { string email = this.email.Text; string password = this.password.Text; StringBuilder sb = new StringBuilder(); sb.Append("hai inserito: <br />"); sb.Append(email); sb.Append("<br />"); sb.Append(password); sb.Append("<br />"); this.literal1.Text = sb.ToString(); }

quando lo mando in esecuzione mi restituisce questo errore:

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


dove sbaglio? email è l'ID della textbox perchè non trova la defenizione?

aggiungo dettagli:

forse ho trovato il problema, per il design ho usato un programma artisteer2 che predispone un progetto in asp.net con la pagina master bella pronta, ma ho notato che ha la base del net.framework 2.0 mentre io sto programmando con il 3.5 esiste un modo affidabile con visual studio 2008 per effettuare la conversione?

Ho provato il mio codice sopra proposto su un nuovo progetto tutto basato sul 3.5 e funziona per questo sospetto che il problema sia il 2.0 suggerimenti?

freeteo Profilo | Guru

Ciao,
il problema non è di versione di Fmw, è di codice, ossia quando tu fai tutto dentro a Visual Studio, il designer ti da accesso ai componenti che hai messo nel markup (con il tag "runat=server" chiaramente) perchè ha scritto in un altro file (tipicamente il ....aspx.designer.cs) che "email" è una textbox, perciò un oggetto System.Web.UI.WebControls.TextBox, e quindi puoi scrivere "email.Text", poi sempre da codice fa riferimento alla parte di markup.
Abbastanza incomprensibile come spiegazione, capisco, ma di fatto è qualcosa di questo genere.

Se vuoi farlo tu a codice, puoi farlo tranquillamente, ti basta nel codice che hai andare a prenderti i controlli della pagina con il metodo "FindControl" passando il nome come stringa, nell'evento OnInit della pagina:
TextBox email; protected Page_Init(object sender, EventArgs e) { email = this.FindControl("email") as TextBox; }

ed allora puoi usare il resto del codice che hai nel file cs, perchè a quel punto l'oggetto "email" esiste ed è una textbox che "punta" (se vogliamo dire così) all'oggetto del markup...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
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