web-dev-qa-db-fra.com

Rendre la zone de texte masquée dans ASP.NET

J'utilise ASP.NET 3.5 et C #.

Sur ma page, j'ai besoin d'une zone de texte qui ne doit pas être visible par l'utilisateur, mais DOIT y figurer lorsque vous regardez la source de la page, car un autre programme appelé Eloqua examinera la source de la page et devra obtenir le valeur de cette zone de texte.

La valeur de cette zone de texte sera renseignée en fonction de la sélection de l'utilisateur.

Par conséquent, je ne peux pas définir la propriété de zone de texte sur Visible = False, car elle ne sera pas dans le code HTML source et je ne peux pas définir Enabled = False car je ne souhaite pas que l'utilisateur voie la zone de texte.

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

Ma zone de texte ASP.NET

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

Vous pouvez utiliser un champ caché. 

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

Utilisez-le comme une zone de texte.

22
Quintin Robinson

Essayez ceci pour masquer la zone de texte invisible au lieu de la propriété visible côté serveur: 

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

Première pensée: pouvez-vous utiliser un champ caché? Ce serait beaucoup plus approprié (<asp: hiddenfield ID = "blah" runat = "Server" /> 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 face de la page. Intellisense ne l'aimera pas, mais le rendu sera parfait (EG: <asp: TextBox id = "txtField" style = "display: none;" runat = "server" />)

Vous pouvez aussi faire txtField.Attributes.Add ("style", "display: none") à partir du code ci-dessous;

Ou vous pouvez aussi simplement lui 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é seraient mes recommandations.

8
fyjham
3
Ruben Bartelink

Si ce doit être une zone de texte pour une raison quelconque, cachez-le simplement avec css:

<input type="text" name="blah" style="display:none" />
2
edosoft

CSS:

.hidden-div
{
    display: none;
}

HTML:

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

Cela fera masquer votre entrée, mais elle sera visible dans le code source.

EDIT: Désolé, je l'ai mal lu. Je pensais que tu voulais cacher une entrée. Mais peu importe de toute façon, il suffit de remplacer l’entrée par pratiquement n'importe quoi.

2
Ondrej Slinták

Définir Visible = "false" côté serveur ne rendra pas le contrôle. Vous devriez soit utiliser asp:Hidden ou INPUT type="hidden". Une autre option utilise CSS, en définissant display:none.

1
Anuraj

Pourquoi ne pas utiliser un champ caché:

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

Pourquoi ne pas utiliser CSS pour masquer un div contenant la zone de texte:

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

Puis dans votre page:

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

J'espère que cela t'aides.

0
Mick Walker

Simplement, Essayez de créer un CSS class et attachez-le à votre TextBox comme suit: 

Style de classe CSS

<style>
    .Hide {
        display:none;
    }
</style>

Zone de texte utilisant CssClass="Hide"

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

Remarque: vous ne pouvez pas utiliser la validation avec le contrôle Hidden

0