Создание текстового поля, скрытого в ASP.NET - PullRequest
16 голосов
/ 27 ноября 2009

Я использую ASP.NET 3.5 и C #.

На моей странице мне нужно иметь текстовое поле, которое не должно быть видно пользователю, но оно ДОЛЖНО быть там, когда вы смотрите на Источник страницы, причина в том, что другая программа под названием Eloqua будет искать источник страницы и должен получить значение этого текстового поля.

Значение этого текстового поля будет заполняться в зависимости от того, что выбрал пользователь.

Таким образом, я не могу установить для свойства текстового поля значение Visible = False, поскольку тогда его не будет в исходном HTML, и я не могу установить параметр Enabled = False, поскольку я не хочу, чтобы пользователь видел текстовое поле.

Есть ли какое-либо свойство, которое я могу использовать, чтобы сделать это текстовое поле скрытым для пользователя, но все еще видимым в источнике страницы?

Текстовое поле моего ASP.NET

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

Ответы [ 10 ]

22 голосов
/ 27 ноября 2009

Вы можете использовать скрытое поле.

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

Используйте это как текстовое поле.

10 голосов
/ 27 ноября 2009

Попробуйте это для невидимого текстового поля вместо серверной части Видимое свойство:

myTextBox.Style.Add("visibility", "hidden");
// or :
myTextBox.Style.Add("display", "none");
8 голосов
/ 27 ноября 2009

Первая мысль: вы можете использовать скрытое поле? Это было бы гораздо более подходящим (, если вы хотите элемент управления .NET).

Если приложение не примет это, хотя вы можете просто вставить "style = 'display: none;'" в код перед страницей. Intellisense не понравится, но он будет отображаться очень хорошо (например: )

Также из кода вы можете сделать txtField.Attributes.Add ("style", "display: none");

Или вы можете просто дать ему CssClass «скрытый», который в вашем CSS определяется как «.hidden {display: none;}»

Класс CSS или просто использование скрытого поля были бы моими рекомендациями.

3 голосов
/ 27 ноября 2009
2 голосов
/ 27 ноября 2009

CSS:

.hidden-div
{
    display: none;
}

HTML:

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

Это приведет к тому, что ваш ввод будет скрыт, но он будет виден в исходном коде.

РЕДАКТИРОВАТЬ: Извините, я неправильно понял. Я думал, что вы хотели скрыть ввод. Но в любом случае это не имеет значения, просто замените ввод на что угодно.

2 голосов
/ 27 ноября 2009

Если по какой-либо причине это должно быть текстовое поле, просто скройте его с помощью css:

<input type="text" name="blah" style="display:none" />
1 голос
/ 27 ноября 2009

При установке Visible = "false" на стороне сервера не будет отображаться элемент управления. Вы должны использовать asp:Hidden или INPUT type="hidden". Другой вариант использует CSS, установив display:none.

0 голосов
/ 01 сентября 2018

Проще, Попробуйте создать CSS class и присоедините его к TextBox следующим образом:

Стиль класса CSS

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

Текстовое поле с использованием CssClass="Hide"

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

Примечание: вы не можете использовать проверку с помощью Hidden control

0 голосов
/ 27 ноября 2009

Как насчет использования CSS, чтобы скрыть div, содержащий текстовое поле:

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

Тогда на вашей странице:

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

Надеюсь, это поможет.

0 голосов
/ 27 ноября 2009

Почему бы не использовать скрытое поле:

<input type="hidden" name="blah" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...