2009-11-27 1 views
13

J'utilise ASP.NET 3.5 et C#.Rendre la zone de texte masquée dans ASP.NET

Sur ma page, je dois avoir une zone de texte qui ne doit pas être visible pour l'utilisateur, mais il DOIT être là quand vous regardez la source de la page, raison pour laquelle, un autre programme s'appellera Eloqua il doit avoir la valeur de cette boîte de texte.

La valeur de cette zone de texte sera remplie en fonction de ce que l'utilisateur sélectionne.

Ainsi, je ne peux pas définir la propriété de zone de texte à Visible = False car alors il ne sera pas dans le code source HTML et je ne peux pas définir Enabled = False parce que je ne veux pas voir la zone de texte.

Y a-t-il une propriété que je peux utiliser pour rendre cette zone de texte cachée à l'utilisateur mais toujours visible dans la source de la page?

zone de texte ASP.NET Mon

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

Répondre

21

Vous pouvez utiliser un champ caché.

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

l'utiliser comme une zone de texte.

+3

Les champs masqués ne fonctionnent pas avec les validateurs ASP.net. – Nuzzolilo

0

Pourquoi ne pas utiliser un champ caché:

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

Parce que j'utilise ASP.NET, je ne peux pas spécifier un type – Etienne

9

Essayez ceci à la place du champ de saisie invisible côté serveur propriété Visible:

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

champ caché n'a pas pu obtenir/définir le texte dans codebutt; donc, c'était bien parti – maxweber

+0

@maxweber - Je meurs d'envie de savoir, c'est quoi "codebutt"? – Matt

+0

et un autre mot pour butt est .... –

8

Première pensée: Pouvez-vous utiliser un champ caché? Ce serait beaucoup plus approprié (< asp: hiddenfield ID = "blah" runat = "Serveur"/> si vous voulez un contrôle .NET).

Si l'application ne le prend pas, vous pouvez simplement mettre "style = 'display: none;'" dans le code en-dessous de la page. IntelliSense ne sera pas comme ça, mais ça va rendre très bien (EG: < asp: TextBox id = style "txtField" = "display: none;" runat = "server"/>)

également de la codebehind vous pouvez faire txtField.Attributes.Add ("style", "display: none");

Ou vous pouvez aussi simplement donner un CssClass « caché » qui dans votre CSS est défini comme « .hidden {display: none;} »

La classe CSS ou tout simplement en utilisant un champ caché serait mes recommandations .

2

Si elle doit être une zone de texte pour une raison quelconque cacher juste avec css:

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

cela a résolu mon problème, comme pour une raison quelconque, le texte du champ caché ne sera pas récupéré. donc j'ai besoin de cacher la boîte de texte. Affichage – AdorableVB

2

CSS:

.hidden-div 
{ 
    display: none; 
} 

HTML:

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

Il sera faites que votre entrée soit cachée, mais s va être visible dans le code source.

EDIT: Désolé, j'ai mal lu. Je pensais que tu voulais cacher une entrée. Mais peu importe, il suffit de remplacer l'entrée par n'importe quoi.

+3

: aucun n'est probablement plus ce que vous voulez. Visibilité cachée laisserait un écart au milieu de sa forme. – fyjham

+1

Erreur stupide, désolé. Édité :) –

0

Comment l'utilisation de CSS pour cacher une div contenant la zone de texte:

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

Ensuite, au sein de votre page:

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

Hope this helps.

+1

Ceci manque le concept de "caché" et laisse n'importe quel lecteur de code penser qu'il y a une erreur. – Marcel

1

Par paramètre Visible = "false" côté serveur ne rendra pas le contrôle. Vous devez utiliser asp:Hidden ou INPUT type="hidden". L'autre option utilise CSS, en définissant display:none.

Questions connexes