2012-04-27 10 views
0

私はMasterPageに隠しフィールドコントロールを含んでいます。私は、隠しフィールドの現在の値を取得し、MasterPageを使用するページからその値を設定します。MasterpageでHiddenFieldコントロールを取得し、その値を設定する方法は?

私がこれまでに次のコードを持っている:上記のコードは動作していないよう

//Get the textbox and set it's value 
    TextBox txt1 = new TextBox(); 
       txt1 = (TextBox)this.Master.FindControl("txtHiddenField"); 
       txt1 .Text = "true"; 

(ページのいずれかで)。隠しフィールドコントロールを取得して値を設定するには、どのようなコードが必要ですか? (と、それは価値のget)

+0

txtHiddenFieldがあるのHiddenField読むこの

ContentPlaceHolder mpContentPlaceHolder; TextBox mpTextBox; mpContentPlaceHolder = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1"); if(mpContentPlaceHolder != null) { mpTextBox = (TextBox) mpContentPlaceHolder.FindControl("TextBox1"); if(mpTextBox != null) { mpTextBox.Text = "TextBox found!"; } } 

のようなものを試してみてください欠けていることができますか? HiddenField型を使用します。コンストラクタをまったく使用する必要はありません。なぜインスタンスを作成して別のインスタンスへの参照を取得する必要がありますか? –

+0

私はそれが(TextBox)this.Master.FindControl( "txtHiddenField"))であるべきだと思います。Text = "True"; – Rajesh

答えて

5

私はあなたのHiddenFieldの値を取得/設定するために使用することができ、あなたのMasterPageにパブリックプロパティ/メソッドを提供することをお勧めします。あなたのマスターで

(それがタイプだと仮定がSiteMasterと呼ばれている):あなたのページで

public String HiddenValue { 
    get{return txtHiddenField.Value;} 
    set{txtHiddenField.Value = value;} 
} 

SiteMaster master = (SiteMaster)Page.Master; 
master.HiddenValue = "true"; 

このアプローチは、エラーが起こりにくいと読みやすい、ストレートフォワードです。ページを変更することなくマスターのコントロールを変更することもできます(たとえば、非表示フィールドをTextBoxに置き換える場合)。

値が"true"で実際にブール値を格納することを示していると仮定すると、プロパティのデータ型と自明の名前としてboolを使用することをお勧めします。次に、それを隠しフィールドに格納できますが、クライアント(ページ)は知る必要はありません。

+0

これは私がやることです。 –

1

あなたはこのような隠しフィールドコントロールを追加したと仮定すると、 - >>

<input type="hidden" ID="hiddenFieldID" runat="server" /> 

あなたはそれが好きでアクセスすることができます - >>としてそのテキストを設定のHiddenField

HtmlInputHidden hiddenfield = (HtmlInputHidden)this.Master.FindControl(
2

VALUE、TextBoxにはTEXTプロパティがあります。もちろん、一方をもう一方にキャストし、テキストプロパティを設定しても効果はありません。

代わりにこれを行います。

HiddenField hiddenField = (HiddenField)Master.FindControl("txtHiddenField"); 
hiddenField.Value = "true"; 
+0

フィールドを見つけられないようです。 hiddenField = null。これにはどんな理由がありますか? – Theomax

関連する問題