2009-11-27 19 views
13

Estoy usando ASP.NET 3.5 y C#.Haciendo cuadro de texto oculto en ASP.NET

En mi página necesito tener un cuadro de texto que no debe ser visible para el usuario pero DEBE estar allí cuando mires el origen de la página, porque otro programa llamado Eloqua buscará en la fuente de la página y debe obtener el valor de ese cuadro de texto.

El valor de ese cuadro de texto se completará en función de lo que el usuario seleccione.

Por lo tanto, no puedo establecer la propiedad de cuadro de texto en Visible = False porque entonces no va a estar en el código fuente HTML y no puedo establecer la Enabled = False porque no quiero que el usuario vea el cuadro de texto.

¿Hay alguna propiedad que pueda usar para ocultar este cuadro de texto al usuario pero que aún esté visible en el origen de la página?

cuadro de texto Mi ASP.NET

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

Respuesta

21

Puede utilizar un campo oculto.

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

Úselo como un cuadro de texto.

+3

Los campos ocultos no funcionan con los validadores de ASP.net. – Nuzzolilo

0

por qué no utilizar un campo oculto:

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

Debido a que estoy usando ASP.NET, no puedo especificar un campo oculto tipo – Etienne

9

a probar este cuadro de texto invisible en lugar de propiedad visible del lado del servidor:

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

que no pudo obtener/establecer texto en el código fuente; entonces, esto era camino a seguir – maxweber

+0

@maxweber - Me muero por saber, ¿qué es "codebutt"? – Matt

+0

y otra palabra para butt es .... –

8

primer pensamiento: ¿Se puede utilizar un campo oculto? Esto sería mucho más adecuado (< asp: hiddenfield ID = "blah" runat = "Servidor"/> si desea un control .NET).

Si la aplicación no lo hace, puedes simplemente poner "style = 'display: none;'" en el código-enfrente de la página. IntelliSense no le va a gustar, pero que va a hacer muy bien (EG: < asp: TextBox id = estilo "txtField" = "display: none;" runat = "server"/>)

También desde el código subyacente puedes hacer txtField.Attributes.Add ("style", "display: none");

O también podría simplemente darle una CssClass "oculto", que en el CSS se define como ".hidden {display: none;}"

La clase CSS o simplemente utilizando un campo oculto serían mis recomendaciones .

2

Si tiene que ser un cuadro de texto por cualquier razón simplemente ocultar con CSS:

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

esto resolvió mi problema, como por alguna razón, el texto del campo oculto no se recupera. entonces necesito esconder el cuadro de texto. – AdorableVB

2

CSS:

.hidden-div 
{ 
    display: none; 
} 

HTML:

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

Será porque tu entrada está oculta, pero es va a ser visible en el código fuente.

EDIT: Lo siento, lo leí mal. Pensé que querías esconder una entrada. Pero de todos modos no importa, simplemente reemplace la entrada con básicamente cualquier cosa.

+3

pantalla: ninguna es más de lo que te gustaría. La visibilidad oculta dejaría un espacio en el medio de su forma. – fyjham

+1

Estúpido error, lo siento. Editado :) –

0

Cómo sobre el uso de CSS para ocultar un div que contiene el cuadro de texto:

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

Luego, dentro de su página:

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

Espero que esto ayude.

+1

Esto omite el concepto de "oculto" y permite que cualquier lector de códigos piense que hay un error. – Marcel

1

Al establecer Visible = "false" en el servidor no se mostrará el control. Debe usar asp:Hidden o INPUT type="hidden". Otra opción es usar CSS, estableciendo display:none.

Cuestiones relacionadas