0

すべてのコンテンツ ページが ajxify されるため、masterpage で scriptManager を使用します。

コンテンツページでは、使用UpdatePanelしてすべて正常に動作しますが、使用するコンテンツページの場合、TabCOntainerあるタブから別のタブに移動するたびに、ページが完全にポストバックされます。

ScriptManagerここで、マスターページから削除して使用すると、正常contentPageに機能することに気付きtabContainerます。

そのようなタイプの条件の可能な解決策は何ですか?

マスターページ

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 <html xmlns="http://www.w3.org/1999/xhtml">

 <head id="Head1" runat="server">
 </head>

 <body>

   <form id="form1" runat="server">

  <asp:ScriptManager ID="ScriptManager1" runat="server">
   </asp:ScriptManager>

 <asp:UpdatePanel ID="UpdatePanel_Register" runat="server">
     <ContentTemplate>
        //Update Panel work at Master Page
      </ContentTemplate>
</asp:UpdatePanel>


           <asp:ContentPlaceHolder ID="showcase" runat="server">

            </asp:ContentPlaceHolder>

コンテンツページ

 <%@ Page Title="" Language="C#" MasterPageFile="~/MasterDashBoard.master" AutoEventWireup="true"
CodeFile="messages.aspx.cs" Inherits="messages" %>

  <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>


  <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">

   <asp:UpdatePanel ID="UpdatePanel_msg" runat="server" >

      <ContentTemplate>

        <cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0" AutoPostBack="True"
                        OnActiveTabChanged="TabContainer1_ActiveTabChanged">

           <cc1:TabPanel runat="server" HeaderText="TabPanel1" ID="TabPanel1" ToolTip="Compose Message">

               <HeaderTemplate>
                                Compose
               </HeaderTemplate>

               <ContentTemplate>
                        Some Work

               </ContentTemplate>

   </cc1:TabPanel>

       <cc1:TabPanel runat="server" HeaderText="TabPanel2" ID="TabPanel2">

                <HeaderTemplate>
                                inbox
                </HeaderTemplate>

                 <ContentTemplate>
            SOme Work
                 </ContentTemplate>
        </cc1:TabPanel>

      </cc1:TabContainer>
    </ContentTemplate>
 </asp:UpdatePanel>

4

1 に答える 1

1

同様のユースケースと setUpdateMode="Conditional"があり、イベントChildrenAsTriggers="true"に使用AsyncPostbackTriggersActiveTabChangedます。ActiveTabChangedイベント ハンドラーで、含まれているコントロールの可視性を切り替え、対応する UpdatePanel を呼び出し、Update最後に周囲のを呼び出しますUpdatePanel。これにより、必要な場合にのみコンテンツをロードすることで、さらにタブを遅延ロードすることができます。

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
    </asp:ScriptManagerProxy>
    <div>
        <asp:UpdatePanel ID="UpdTabContainer" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
            <ContentTemplate>
                <asp:TabContainer ID="TabContainer1" runat="server" AutoPostBack="true">
                    <asp:TabPanel ID="TabDeliveryControl" runat="server" HeaderText="Delivery-Control">
                        <HeaderTemplate>
                            <asp:Panel ID="PnlTabDeliveryControl" runat="server" ToolTip="Delivery-Control">
                                Delivery-Control
                            </asp:Panel>
                        </HeaderTemplate>
                        <ContentTemplate>
                            <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                                <ContentTemplate>
                                    <SVCS:SVCSDeliveryControl id="SVCSDeliveryControl" runat="server" Visible="false" />
                                </ContentTemplate>
                                <Triggers>
                                    <asp:AsyncPostBackTrigger ControlID="TabContainer1" EventName="ActiveTabChanged" />
                                </Triggers>
                            </asp:UpdatePanel>
                        </ContentTemplate>
                    </asp:TabPanel>
                    <asp:TabPanel ID="TabRepair" runat="server" HeaderText="Repair-Area" >
                        <HeaderTemplate>
                            <asp:Panel ID="PnlTabRepair" runat="server" ToolTip="Repair-Area">
                                Repair-Area
                            </asp:Panel>
                        </HeaderTemplate>
                        <ContentTemplate>
                            <asp:UpdatePanel ID="UpdatePanel4" runat="server" UpdateMode="Conditional">
                                <ContentTemplate>
                                    <SVCS:SVCSRepair id="SVCSRepair" runat="server" Visible="false" />
                                </ContentTemplate>
                                <Triggers>
                                    <asp:AsyncPostBackTrigger ControlID="TabContainer1" EventName="ActiveTabChanged" />
                                </Triggers>
                            </asp:UpdatePanel>
                        </ContentTemplate>
                    </asp:TabPanel>
                    <asp:TabPanel ID="TabShipping" runat="server" HeaderText="Shipping" Visible="false">
                        <HeaderTemplate>
                            <asp:Panel ID="PnlTabShipping" runat="server" ToolTip="Shipping">
                                Shipping
                            </asp:Panel>
                        </HeaderTemplate>
                        <ContentTemplate>
                            <asp:UpdatePanel ID="UpdatePanel5" runat="server" UpdateMode="Conditional">
                                <ContentTemplate>
                                    <SVCS:SVCSShipping id="SVCSShipping" runat="server" Visible="false" />
                                </ContentTemplate>
                                <Triggers>
                                    <asp:AsyncPostBackTrigger ControlID="TabContainer1" EventName="ActiveTabChanged" />
                                </Triggers>
                            </asp:UpdatePanel>
                        </ContentTemplate>
                    </asp:TabPanel>
                </asp:TabContainer>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
</asp:Content>
于 2012-05-21T10:57:14.593 に答える