ASP.NETのTextBoxコントロール - 背後にあるコードでデフォルトのテキスト値を取得しますか?
-
23-08-2019 - |
質問
私は、MSDNをスパイされており、あなたがフィールドに設定されたデフォルトのテキスト値を取得することができますテキストボックスのプロパティ/メソッドを参照してくださいすることはできません。私は(この擬似コードが示すように)デフォルト値に現在のtxtMyTextBox.Textを比較することができるようにしたい。
var myValue = (String.Compare(txtMyTextBox.Text, txtMyTextBox.DefaultText) ? "" : txtMyTextBox.Text)
これはASP.NETコントロールに存在する何かですか?または私はあまりにも多くを求めていますか? :)
(いつものように)任意の助けてくれてありがとう!
ピート
解決
何のポストバック時にテキストボックスのデフォルト値を取得する方法ではありません内蔵されています。
一つの選択肢は、比較を行うためにポストバック時に初期PageLoad中に値を保存するためにViewStateを使用して、そこからそれを取得することです。
他のヒント
DefaultTextことによって、あなたは編集前の初期のテキストを意味するのですか?
おそらくどこかにこの定数/フィールド内の/ etcを宣言し、むしろマークアップよりもプログラム的にそれを設定する - すなわち、最初のロードで、txtMyTextBox.Text = defaultText;
を - 。その後あなただけの変更を追跡するためにdefaultText
するために、再度比較することができます。
テキストボックス(または他のコントロール)には「DefaultText」プロパティはありません。 おそらく、定数文字列によってデフォルトが定義されているので、ちょうどその定数文字列にTextプロパティを比較します。
あなたがチェックできる唯一のプロパティは、Textプロパティです。あなたは元の値を比較する必要があるなら、あなたは多分として隠しフィールドやセッション変数を格納することが最善でしょう。その後、textbox.Textプロパティで何かに対してこれを確認することができます。
隠しフィールドやビューステートに元の値を入れます。
のTextBoxクラスは唯一の.textプロパティをサポートしていますので、あなたの「デフォルト」値は、ページがポストバックされたときに、テキストボックスの.textのプロパティをチェックできるようにするために、最初のページをレンダリングする前にどこかに保存する必要があります。この「デフォルト」値が(十分に小さい場合)、ページのViewStateに、ページ上の非表示のフォームフィールドで、あるいはアプリケーションまたはセッション状態にクッキーに保存することができます。
のTextBoxはDefaultTextプロパティを持っていないので、私は混乱しています。どのようにデフォルトのテキスト値を設定していますか?あなただけのコードすなわちでそれを設定している場合。
<asp:TextBox ...>Default Value</asp:TextBox>
、それはの.textプロパティの値になります。