ASP.NET TextBox Control - Получить текстовое значение по умолчанию в коде позади? - PullRequest
3 голосов
/ 13 февраля 2009

Я шпионил за MSDN и не вижу свойства / метода для TextBox, который позволяет вам получить текстовое значение по умолчанию, которое было установлено в поле; Я хочу иметь возможность сравнивать текущий txtMyTextBox.Text со значением по умолчанию (как показано в этом коде psuedo):

var myValue = (String.Compare(txtMyTextBox.Text, txtMyTextBox.DefaultText) ? "" : txtMyTextBox.Text)

Это что-то, что существует в элементе управления ASP.NET? Или я слишком много спрашиваю? :)

Спасибо за любую помощь (как всегда)!

Пит

Ответы [ 7 ]

3 голосов
/ 13 февраля 2009

Под DefaultText вы подразумеваете исходный текст перед редактированием?

Возможно, объявите это где-нибудь в константе / поле / и т. Д. И установите его программно, а не в разметке - то есть при первой загрузке txtMyTextBox.Text = defaultText; - затем позже вы можете просто снова сравнить с defaultText для отслеживания изменений.

2 голосов
/ 13 февраля 2009

Нет свойства DefaultText в текстовом поле (или любом другом элементе управления). Возможно, вы определили значение по умолчанию через константную строку, поэтому просто сравните свойство Text с этой константной строкой.

1 голос
/ 13 февраля 2009

Класс TextBox поддерживает только свойство .Text, поэтому ваше значение «по умолчанию» должно быть сохранено где-то перед первым отображением страницы, чтобы вы могли проверить свойство текстового поля .text при повторной публикации страницы. Это значение «по умолчанию» может быть сохранено в файле cookie (если оно достаточно маленькое), в ViewState страницы, в скрытом поле формы на странице или даже в приложении или состоянии сеанса.

1 голос
/ 13 февраля 2009

Поместите исходное значение в скрытое поле или в viewstate.

1 голос
/ 13 февраля 2009

Единственное свойство, которое вы можете проверить, это свойство Text. Если вам нужно сравнить исходное значение, то лучше сохранить его как скрытое поле или переменную сеанса. Затем вы можете проверить это по любому параметру textbox.Text.

1 голос
/ 13 февраля 2009

Не существует встроенного способа получения значения по умолчанию для текстового поля во время обратной передачи.

Один из вариантов - использовать ViewState для сохранения значения во время начальной загрузки страницы и извлечения его оттуда во время обратной передачи для сравнения.

0 голосов
/ 13 февраля 2009

TextBox не имеет свойства DefaultText, поэтому я запутался. Как вы устанавливаете текстовое значение по умолчанию? Если вы просто устанавливаете его в коде, т.е.

<asp:TextBox ...>Default Value</asp:TextBox>

Тогда это будет значение свойства .Text.

...