2009-02-13 94 views
3

我一直在间谍MSDN,并看不到TextBox的属性/方法,它允许您获取在字段上设置的默认文本值;我希望能够比较当前txtMyTextBox.Text为默认值(类似这样的伪代码显示):ASP.NET TextBox控件 - 获取代码后面的默认文本值?

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

这是不是它存在于ASP.NET控件?还是我问太多? :)

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

皮特

回答

1

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

一个选择是使用ViewState在初始PageLoad期间存储该值,并在回发过程中从中检索该值以进行比较。

+0

我有一种可怕的感觉,不会有这样的属性,耻辱,我认为它会很好! – peteski 2009-02-13 11:25:51

2

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

3

By DefaultText你是指编辑前的初始文本?

也许在某个地方将其声明为一个常量/字段/等,并将其设置为编程方式而不是标记 - 即在第一个加载中,然后稍后再次与defaultText进行比较以跟踪更改。

+0

嗨,马克,是啊!我的意思是设置的值: peteski 2009-02-13 11:26:57

+0

所以也许把“我的默认文本”放在一个常量中代码隐藏(“干”),并从那里工作... – 2009-02-13 11:31:16

1

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

1

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

0

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

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

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

1

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