2012-03-02 143 views
3

2つのビューと2つのUserControlを持つasp:MultiViewコントロールがあります。 最初のビューでは、すべてのコントロールをASPxTabControlの別のタブに配置したいと考えています。 2つ目のビューでは、2つのコントロールを順番に表示したいと思います。ASP.net MultiViewの異なるビューで同じコントロールインスタンスを使用する

ビュー間を切り替えると、どのビューでも同じビューインスタンスが使用され、同じコントロールインスタンスが使用されることをどのように達成できますか?

MutliViewを使用する代わりに、より良い方法がありますか?

ご返信いただきありがとうございます。

乾杯

答えて

0

はあなたの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を使用しています簡単にするためにラベルを付けますが、問題のユーザーコントロールの種類を使用してプログラムでインスタンス化することで、ユーザーコントロールを簡単に使用できます。

関連する問題