0

MasterPage非表示のフィールド コントロールを含む があります。非表示フィールドの現在の値を取得し、MasterPage.

これまでのところ、次のコードがあります:(ページの1つ)

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

上記のコードは機能していないようです。隠しフィールド コントロールを取得してその値を設定するには、どのようなコードが必要ですか? (そしてその値を取得します)

4

4 に答える 4

5

MasterPageHiddenFieldの値を設定/取得するために使用できるパブリックプロパティ/メソッドをに提供することをお勧めします。

あなたのマスターで(そのタイプが呼ばれると仮定してSiteMaster):

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

あなたのページ:

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

このアプローチは単純明快で、エラーが発生しにくく、読みやすくなっています。ページを変更せずにマスターのコントロールを変更することもできます(非表示フィールドをTextBoxに置き換えたい場合はfe)。

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

于 2012-04-27T09:54:11.073 に答える
2

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

代わりにこれを行ってください:

HiddenField hiddenField = (HiddenField)Master.FindControl("txtHiddenField");
hiddenField.Value = "true";
于 2012-04-27T09:53:48.820 に答える
1

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

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

->>のようにアクセスできます

HtmlInputHidden hiddenfield = (HtmlInputHidden)this.Master.FindControl(
于 2012-04-27T09:52:54.877 に答える
1

あなたが行方不明になっている可能性がありますContentPlaceHolder

このようなものを試してください

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

リファレンスASP.NETマスターページコンテンツの詳細を読む

于 2012-04-27T09:54:48.063 に答える