はあなたのASPXページでこれを試してみてください:
あなたASPX.CSコードビハインドページの
<asp:MultiView ID="mvTest" ActiveViewIndex="0" runat="server">
<asp:View ID="vwFirst" runat="server">
<asp:PlaceHolder ID="phFirstContainer" runat="server" ></asp:PlaceHolder>
</asp:View>
<asp:View ID="vwSecond" runat="server">
<asp:PlaceHolder ID="phSecondContainer" runat="server" ></asp:PlaceHolder>
</asp:View>
</asp:MultiView>
<asp:Button runat="server" ID="btnSwitchViews" Text="Switch Views" OnClick="btnSwitchViews_Click"/>
そして、この:
protected void Page_PreRender(object sender, EventArgs e)
{
var myControl = new Label() {ID = "MyTextControl"};
if (mvTest.GetActiveView().ID == "vwFirst")
{
myControl.Text = "I'm the same controller on the first view";
phFirstContainer.Controls.Add(myControl);
}
else if(mvTest.GetActiveView().ID == "vwSecond")
{
myControl.Text = "I'm the same controller on the second view";
phSecondContainer.Controls.Add(myControl);
}
}
protected void btnSwitchViews_Click(object sender, EventArgs e)
{
mvTest.ActiveViewIndex = mvTest.ActiveViewIndex == 0 ? 1 : 0;
}
私はASP.NETを使用しています簡単にするためにラベルを付けますが、問題のユーザーコントロールの種類を使用してプログラムでインスタンス化することで、ユーザーコントロールを簡単に使用できます。