PDA

View Full Version : [ASP.NET]Soluzione elegante per pagina editabile


Diego_Armando
18-05-2009, 09:56
Ragazzi buongiorno..

Capisco che il titolo è assolutamente poco chiaro..mi spiego meglio..:)

Sto realizzando un sito Web in ASP.NET 3.5. Ho un problema banalissimo che vorrei però risolvere in modo elegante..
La pagina del profilo utente può essere in due modalità:

- modificabile
- non modificabile

La tabella contenente i dati del profilo l'ho creata con uno user control ed è una cosa del genere:

Nome: xxxxx
Cognome: xxx
Età: xxx
ecc..

In modalità di modifica la pagina deve contenere dei textBox editabili mentre in modalità di non modifca deve contenere delle label.

La mia soluzione (bruttissima) è questa, nella pagina aspx inserisco sia la textBox che la label
e nel mio pageLoad utilizzando il this.Controls.Remove(...) rimuovo dalla pagina le label se sono in modalità modifica, i texBox se invece la pagina non è modificabile.

<tr>
<td><asp:Label ID="lbl_name" runat="server" >Name:</asp:Label></td>
<td>
<asp:Label ID="lbl_profile_name" runat="server"></asp:Label>
<asp:TextBox ID="txt_profile_name" runat="server"></asp:TextBox>
</td>
</tr>


protected void Page_Load(object sender, EventArgs e)
{
if (editable)
{
this.Controls.Remove(lbl_profile_name);
this.txt_profile_name.Text = dataSource.name;
}
else
{
this.Controls.Remove(txt_profile_name);
this.lbl_name.Text = dataSource.name;
}
}

Spero di essere riuscito a spiegare il problema..

Voi che soluzione alternativa mi suggerireste?

Grazie mille per le eventuali risposte..

gugoXX
18-05-2009, 12:58
Per stare in soluzioni piu' ortodosse io userei l'attributo
Visible = "false"
nei controlli che non devono essere visti.
oppure
style="visibility:collapse"