Создание текстового поля, скрытого в ASP.NET

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

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

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

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

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

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

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

11 ответов

Решение

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

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

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

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

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

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

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

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

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

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

CSS:

.hidden-div
{
    display: none;
}

HTML:

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

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

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

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

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

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

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

<input type="hidden" name="blah" />
      <asp:TextBox ID="TextBox2" runat="server" visible="false"></asp:TextBox>

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

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

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

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

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

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

CSS Class Style

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

Использование текстового поляCssClass="Hide"

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

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

Другие вопросы по тегам