Creazione di textbox con etichetta

mercoledì 04 agosto 2010 - 17.57

alanolontano Profilo | Newbie

Salve,
a seguito del click su un bottone, creo un Panel e tre Textbox all'interno del Panel stesso. Quest'ultimo, inoltre, viene posto all'interno di un div di nome "container".

Il codice (in C#) è il seguente:

protected void Button1_Click(object sender, EventArgs e)
{
Panel pnl = new Panel();
pnl.ID = "Panel1";
pnl.Height = 100;
pnl.Style.Add("width", "100%");
pnl.BackColor = System.Drawing.Color.Yellow;

TextBox txt = new TextBox();
txt.ID = "TextBox1";

TextBox txv = new TextBox();
txv.ID = "TextBox2";

TextBox txz = new TextBox();
txz.ID = "TextBox3";

pnl.Controls.Add(txt);
pnl.Controls.Add(txv);
pnl.Controls.Add(txz);

container.Controls.Add(pnl);
}

Il problema, per voi sicuramente banale, è quello di dotare ciascuna delle textbox delle relative etichette, in maniera che appaia l'etichetta (con relativo contenuto testuale) e immediatamente al di sotto la textbox alla quale l'etichetta stessa si riferisce.
Attendo un vosto graditissimo aiuto, grazie mille anticipato !!!

alexmed Profilo | Guru

Ciao
Prova a dare un'occhiata qui se c'è qualcosa che ti piace:

http://www.dynamicdrive.com/dynamicindex5/

Ciao

alexmed

alanolontano Profilo | Newbie

Ciao,
il tuo link è molto interessante e sicuramente può tornare utile in molte applicazioni.
Però non voglio credere che ASP.NET non metta a disposizione una soluzione semplice per dotare di etichetta una textbox creata dinamicamente ... per chiarezza, si tratta della tipica situazione riscontrata in un modulo di immissione dati, ove vi sono vari campi (textbox) ciascuno con l'indicazione (etichetta) del dato da digitare.

alexmed Profilo | Guru

Ok
Pensavo volessi personalizzare il Tooltip graficamente.
In queto caso allora basta:

<asp:TextBox ID="txtNome" runat="server" Width="150px" CssClass="input"
ToolTip="Ciccio!!! Metti il nome">
</asp:TextBox>


>EDIT

TextBox txv = new TextBox();
txv.ID = "TextBox2";
txv.ToolTip = "Ciccio!!! Metti il nome"


Ciao

alexmed

alanolontano Profilo | Newbie

Ciao Alexmed, prima di tutto ti ringrazio per le risposte.

In effetti quello che cercavo non era proprio una Tooltip, ma una vera e propria etichetta fissa.
Mi spiego meglio e scusa se finora non sono stato chiaro.
In pratica, per etichette intendo quelle che nella figura di esempio sottostante sono state chiamate "Ragione sociale", "Partita IVA" e "ID cliente":


513x41 13Kb


-se l'immagine non viene visualizzata puoi andare al link: http://img254.imagevenue.com/img.php?image=02625_hobredo_122_12lo.JPG

Ebbene, nel codice che ho scritto, sono generate soltanto le textbox. Ciò che chiedo è il modo per aggiungere per ciascuna textbox, la relativa etichetta posizionata così come nella figura di esempio.

Ciao e grazie per la pazienza.

mrub Profilo | Junior Member

Ricordandoci che ... va bene programmazione ad oggetti ma alla fine quello che viene visualizzato è codice html.

la routine dovrebbe generare un codice simile (in ogni caso ti serve una label)

<div style="display:block; width:600px">

<div style="display:block; width:200px;float:left;">
<label ....
<textbox
</div>

<div style="display:block; width:200px;float:left;">
<label ....
<textbox
</div>
</div>

<div style="display:block; width:200px;float:left;">
<label ....
<textbox
</div>

se preferisci puoi ottenere lo stesso utilizzando una tabella

Ciao, mirko.

alanolontano Profilo | Newbie

Assolutamente d'accordo, però come fare ?

Tra l'altro ho anche provato a generare una label così come fatto per le textbox, ovvero:

Label lbl = new Label();
lbl.ID = "label1";
lbl.Text = "etichetta1";

ma sembra che ASP.NET lo ignori, ovvero in fase di esecuzione non viene creata alcuna label.
Come posso risolvere ?

mrub Profilo | Junior Member

Quale è il motivo per cui vuoi creare i controlli a runtime ?

le textbox sono sempre tre?
sono legate a database?
in altre parole a cosa serve il panel?

cmq se vuoi inserire un div da codice, così come qualsiai altro tag html, puoi utilizzare la classe htmlgenericcontrol e la sua proprietà tagname

ciao

alanolontano Profilo | Newbie

Mi correggo ... la creazione a runtime della label funziona nel modo descritto prima (avevo dimenticato di usare l'Add). Quindi basta aggiungere una interruzione di riga fra le label e le textbox attraverso literalcontrol e gestire il tutto tramite css per l'allineamento orizzontale.
Grazie a tutti, alla prox.
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