ASP.NET TextBox Control - 获取代码后面的默认文本值?

时间:2009-02-13 11:18:19

标签: c# .net asp.net web-controls

我一直在监视MSDN,无法看到TextBox的属性/方法,它允许您获取在字段上设置的默认文本值;我希望能够将当前的txtMyTextBox.Text与默认值进行比较(如此伪代码所示):

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

这是ASP.NET控件中存在的东西吗?还是我问得太多了? :)

感谢您的帮助(一如既往)!

皮特

7 个答案:

答案 0 :(得分:3)

默认文本是指编辑前的初始文本吗?

也许在某个地方的常量/ field / etc中声明它,并以编程方式而不是在标记中设置它 - 即在第一次加载中txtMyTextBox.Text = defaultText; - 然后您可以再次与defaultText进行比较跟踪变化。

答案 1 :(得分:2)

文本框(或任何其他控件)上没有“DefaultText”属性。 您可能已经通过常量字符串定义了默认值,因此只需将Text属性与该常量字符串进行比较。

答案 2 :(得分:1)

在回发期间没有内置的方法来检索文本框的默认值。

一种选择是使用ViewState在初始PageLoad期间存储值,并在回发期间从那里检索它以进行比较。

答案 3 :(得分:1)

您可以检查的唯一属性是Text属性。如果您需要比较原始值,那么最好将其存储为隐藏字段或会话变量。然后,您可以对textbox.Text属性中的任何内容进行检查。

答案 4 :(得分:1)

将原始值放在隐藏字段或视图状态中。

答案 5 :(得分:1)

TextBox类仅支持.Text属性,因此必须在首次呈现页面之前将“默认”值存储在某处,以便在页面回发时检查文本框的.text属性。这个“默认”值可以存储在cookie中(如果足够小),在页面的ViewState中,在页面上的隐藏表单字段中,甚至存储在应用程序或会话状态中。

答案 6 :(得分:0)

TextBox没有DefaultText属性,所以我很困惑。你是如何设置默认文本值的?如果你只是在代码中设置,即

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

然后它将是.Text属性的值。