マスタのContentPlaceHolder
にロードされたページからマスタページの要素にアクセスできますか?コンテンツページからMasterページの.Net要素にアクセスするには?
マスターページのナビゲーション領域にユーザーの名前をリストするListViewがあります。 ListViewがデータにバインドされているテーブルに人が追加された後、ListViewを更新したいと考えています。キャッシュがリロードされるまで、ListView
は現在その値を更新しません。 ListView.DataBind()
を再実行するだけでリストビューの内容が更新されることがわかりました。マスターページを使用するページでListView.DataBind()
を実行することができませんでした。以下は
は私がやりたいことのサンプルですが、コンパイルエラーが
「PeopleListViewは現在のコンテキスト内に存在しない」
GIS.master言う - ListViewのは
を常駐します...<asp:ListView ID="PeopleListView"...
GISInput_People.aspxは - それは、マスターページ
だとしてGIS.masterを使用しますGISInput_People.aspx.cs
AddNewPerson()
{
// Add person to table
....
// Update Person List
PeopleListView.DataBind();
...
}
C#.NETでこのような問題を解決する最良の方法は何でしょうか?
(Master as MyMaster).PeopleListView.DataBind();
編集: PeopleListViewは、デフォルトで保護宣言されるので、あなたは国民にこれを変更する必要がありますのいずれか、またはそのようパブリックプロパティラッパーを作成して、マスターページがMyMaster命名されたと仮定すると、
ありがとう、これは動作します。ただし、キャストする必要があります。 ((myMasterPage)Master).SetMasterTextBox1Text = "someText"; –
あなたの実装に依存します...単一のマスターページのために、そうする必要はありません。そのような基本的な例(Print "Hello World!"のような)では、実際の実装ははるかに複雑になるでしょう。 – BrainCoder
これは私が使用した方法であり、セルゲイの追加の変更はありません。私が必要としていたことをうまくやってくれます。おそらく答えとしてマークされているはずです。 +1 – James