2009-11-27 23 views
13

Sto usando ASP.NET 3.5 e C#.Rendere la casella di testo nascosta in ASP.NET

Nella mia pagina ho bisogno di avere una casella di testo che non deve essere visibile all'utente, ma DEVE essere lì quando si guarda la Sorgente della pagina, la ragione è, un altro programma chiamato Eloqua guarderà il sorgente della pagina e deve ottenere il valore di quella casella di testo.

Il valore di tale casella di testo verrà compilato in base a ciò che l'utente seleziona.

Pertanto, non posso impostare la proprietà della casella di testo su Visible = False perché non sarà nell'HTML di origine e non posso impostare il valore Enabled = False perché non desidero che l'utente visualizzi la casella di testo.

C'è qualche proprietà che posso usare per rendere questa casella di testo nascosta all'utente ma ancora visibile nell'origine della pagina?

casella di testo La mia ASP.NET

<asp:TextBox ID="txtTester" runat="server"></asp:TextBox> 

risposta

21

È possibile utilizzare un campo nascosto.

<asp:HiddenField id="myHiddenInput" runat="server" /> 

Utilizzarlo come una casella di testo.

+3

I campi nascosti non funzionano con i validatori ASP.net. – Nuzzolilo

0

perché non utilizzare un campo nascosto:

<input type="hidden" name="blah" /> 
+0

Poiché sto utilizzando ASP.NET, non posso specificare un tipo di campo nascosto – Etienne

9

Provate a testo invisibile, invece di lato server proprietà Visible:

myTextBox.Style.Add("visibility", "hidden"); 
// or : 
myTextBox.Style.Add("display", "none"); 
+0

impossibile ottenere/impostare il testo in codebutt; così, questa era la strada da percorrere – maxweber

+0

@maxweber - Sto morendo dalla voglia di sapere, cos'è "codebutt"? – Matt

+0

e un'altra parola per il culo è .... –

8

Primo pensiero: È possibile utilizzare un campo nascosto? Questo sarebbe molto più adatto (< asp: hiddenfield ID = "blah" runat = "Server"/> se si desidera un controllo .NET).

Se l'app non ci riuscirà, è possibile inserire "style =" display: none; "" nel codice della pagina. Intellisense non gli piacerà, ma renderà bene (EG: < asp: TextBox id = "txtField" style = "display: none;" runat = "server"/>)

Anche dal codebehind puoi fare txtField.Attributes.Add ("style", "display: none");

Oppure si potrebbe anche solo dare un CssClass "nascosto", che nel CSS viene definito come ".hidden {display: none;}"

La classe CSS o semplicemente utilizzando un campo nascosto sarebbe mie raccomandazioni .

2

Se deve essere una casella di testo per qualsiasi ragione solo nasconderlo con i CSS:

<input type="text" name="blah" style="display:none" /> 
+0

questo ha risolto il mio problema, poiché per qualche motivo, il testo dal campo nascosto non viene recuperato. quindi ho bisogno di nascondere la casella di testo. – AdorableVB

2

CSS:

.hidden-div 
{ 
    display: none; 
} 

HTML:

<div class="hidden-div"> 
    <input ... /> 
</div> 

Sarà perché il tuo contributo sia nascosto, ma e ' Saranno visibili nel codice sorgente.

EDIT: Scusa, ho letto male. Pensavo volessi nascondere un input. Ma non importa comunque, basta sostituire l'input con praticamente qualsiasi cosa.

+3

display: nessuno è probabilmente più quello che vorresti. La visibilità nascosta lascerebbe una lacuna nel mezzo della sua forma. – fyjham

+1

Errore stupido, mi dispiace. Modificato :) –

0

ne dite di usare i CSS per nascondere un div che contiene la casella di testo:

.hidden { 
    position: absolute; 
    left: -9999px; 
} 

Poi all'interno della vostra pagina:

<div class="hidden"> 
    <asp:TextBox ID="TextBox1" runat="server" Text="hi"></asp:TextBox> 
</div> 

Spero che questo aiuti.

+1

Manca il concetto di "nascosto" e consente a qualsiasi lettore di codice di pensare che ci sia un errore. – Marcel

1

Impostando Visible = "false" nel lato server non verrà visualizzato il controllo. È necessario utilizzare asp:Hidden o INPUT type="hidden". Un'altra opzione sta usando CSS, impostando display:none.

Problemi correlati