マスターページ
<div id="header" style="height: 150px; width: 750px;">
<asp:Label ID="Label3" runat="server" Text="LoggedInUser:"></asp:Label>
<asp:Label ID="lblLoggedInUser" runat="server" Text=""></asp:Label>
</div>
<div id="leftMenu" class="leftmenu">
<br />
<asp:DropDownList ID="ddlFamilyMembers" runat="server"
style="height: 25px; width: 125px" DataTextField="FullName"
DataValueField="MembershipGen"
onselectedindexchanged="ddlFamilyMembers_SelectedIndexChanged"
AutoPostBack="True" >
</asp:DropDownList>
<br /><br />
<asp:Image ID="imageMember" class="space" runat="server" Height="150px" Width="125px" />
<br /><br /><br />
<asp:Label ID="Label1" runat="server" class="space" Text="MembershipID:"></asp:Label>
<asp:Label ID="lblMembershipID" runat="server" Text=""></asp:Label>
<br />
<asp:Label ID="Label2" runat="server" class="space" Text="Name:"></asp:Label>
<asp:Label ID="lblMemberName" runat="server" Text=""></asp:Label>
<br /><br /><br />
<asp:LinkButton ID="lbInformation" class="space" runat="server" onclick="lbInformation_Click">Member Information</asp:LinkButton><br />
<asp:LinkButton ID="lbAddress" class="space" runat="server"
onclick="lbAddress_Click">Member Address</asp:LinkButton>
</div>
<div id="divRight" class="divright">
<asp:ContentPlaceHolder ID="CPHMain" runat="server">
</asp:ContentPlaceHolder>
</div>
私の問題をよりよく理解できるように、マスターページのコードを投稿しました。これらのコントロールはマスター ページにあるため、マスター ページ内のすべてのコントロールのパブリック プロパティを作成して、コンテンツ ページをデータバインドする必要がありました。多分私はこれに間違って近づいていますが、これは私がこれを達成することを計画していた方法です.
ContentPage Default.aspxpage_load
イベントは、私のメソッドを呼び出してデータを取得し、ドロップダウン リスト、画像、2 つのラベル フィールドを設定します。ドロップダウンリストの選択されたインデックスの変更では、別のメソッドから新しい値を取得し、それに応じてそれらのコントロールに入力します。
私のマスターページでこれらのコントロールにアクセスするには、いくつかの異なる方法でアクセスしてから<%@MasterType VirtualPath="~/Member.Master" %>
、厳密に型指定された接続を作成できます。または、緩やかなタイプの接続を作成することもできます。
これらの方法に関する私の問題は、15 を超えるコンテンツ ページがあり、コンテンツ ページの 1 つが呼び出されるたびに DropDownList を再バインドする必要があることを嫌うからです。また、コンテンツページのすべてのメソッドでコントロールを再インスタンス化する必要がありますが、これは間違っていると思います。
あまり繰り返しのコードを使わずにこれを達成するための適切な方法について、誰かがアドバイスをくれますか?