TabContainer postback problems

Last post 11-13-2009 4:46 AM by Zhi-Qiang Ni - MSFT. 1 replies.

Sort Posts:

  • TabContainer postback problems

    11-10-2009, 9:27 AM
    • Participant
      1,144 point Participant
    • Xequence
    • Member since 05-07-2008, 1:57 PM
    • USA
    • Posts 361

    My problem is that I think I "Need" this control to post back because of the logic I am using to store the active tab index. Based on this active tab index, I am dynamically adding validation to whatever form the active tab index is. My problem is that the application is very slow with the double post back, "figure of speech",  and I would love for the update panel to actually take control of this posting back issue. Here is my logic.

    <script type="text/javascript" language="javascript">
    
     function ActiveTabChanged(sender, e) {
                var activeTab = $get('<%=activeTab.ClientID%>');
                //alert(activeTab);
                activeTab.value = sender.get_activeTabIndex();
            }
    </script>
    
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
            <Triggers>
                <asp:AsyncPostBackTrigger EventName="ActiveTabChanged" ControlID="TabContainer1" />
            </Triggers>
            <ContentTemplate>
                <table align="center">
                    <tr align="center">
                        <td align="center">
                            <asp:Label ID="lblStatus" runat="server" Text="FMLYHM" ForeColor="White"></asp:Label>
                        </td>
                    </tr>
                </table>
                <uc1:TabContainer ID="TabContainer1" runat="server" Height="700px" ScrollBars="Auto"
                    Width="1760px" AutoPostBack="true" TabStripPlacement="Top" ActiveTabIndex="2"
                    OnClientActiveTabChanged="ActiveTabChanged">
                    <uc1:TabPanel ID="tabDetails1" TabIndex="0" runat="server" HeaderText="Details 1">
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <asp:HiddenField ID="activeTab" runat="server" Visible="true" />
                                    <uc1:ctrl_Details1New ID="ctrl_Details1New" runat="server" />
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabDetails2" TabIndex="1" runat="server" HeaderText="Details 2">
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_Details2 ID="ctrl_Details21" runat="server" />
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabEstimates" TabIndex="2" runat="server" HeaderText="Estimates">
                        <HeaderTemplate>
                            Estimates
                        </HeaderTemplate>
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_Estimates ID="ctrl_Estimates1" runat="server" />
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabRFPDocuments" TabIndex="3" runat="server" HeaderText="RFP Documents">
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_RFPDocuments ID="ctrl_RFPDocuments1" runat="server" />
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabBidReview" TabIndex="4" runat="server" HeaderText="Bid Review">
                        <HeaderTemplate>
                            Bid Review
                        </HeaderTemplate>
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_BidReview ID="ctrl_BidReview1" runat="server" />
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabInsurance" TabIndex="5" runat="server" HeaderText="Insurance">
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_Insurance ID="ctrl_Insurance1" runat="server"></uc1:ctrl_Insurance>
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabContractsDept" TabIndex="6" runat="server" HeaderText="Contracts Dept">
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_Contracts ID="ctrl_Contracts1" runat="server" />
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabLegal" TabIndex="7" runat="server" HeaderText="Legal">
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_Legal ID="ctrl_Legal1" runat="server" />
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabSupplyManagement" TabIndex="8" runat="server" HeaderText="Supply Management">
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_SupplyManagement ID="ctrl_SupplyManagement1" runat="server" />
                                    .
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="TabSupplyManagement2" TabIndex="9" runat="server" HeaderText="Supply Management a">
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    .
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabBonds" TabIndex="10" runat="server" HeaderText="Bonds">
                        <HeaderTemplate>
                            Bonds
                        </HeaderTemplate>
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_Bonds ID="ctrl_Bonds1" runat="server" />
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="TabBonds2" TabIndex="11" runat="server" HeaderText="Bonds a">
                        <HeaderTemplate>
                            Bonds a
                        </HeaderTemplate>
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabContractDocuments" TabIndex="12" runat="server" HeaderText="Contract Documents">
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_ContractDocuments ID="ctrl_ContractDocuments1" runat="server" />
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabSubcontracts" TabIndex="13" runat="server" HeaderText="Subcontracts">
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_SubContracts ID="ctrl_SubContracts1" runat="server" />
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabSubcontractors2" TabIndex="14" runat="server" HeaderText="Subcontracts a">
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabFNAReview" TabIndex="15" runat="server" HeaderText="F & A Review">
                        <HeaderTemplate>
                            F & A Review
                        </HeaderTemplate>
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_FnaReview ID="ctrl_FnaReview1" runat="server" />
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabChangeOrders" TabIndex="16" runat="server" HeaderText="Change Orders">
                        <HeaderTemplate>
                            Change Orders
                        </HeaderTemplate>
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_ChangeOrders ID="ctrl_ChangeOrders1" runat="server" />
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="TabClaimsBondsLiens" TabIndex="17" runat="server" HeaderText="Claims Bonds Liens">
                        <HeaderTemplate>
                            Claims/Bonds/Liens
                        </HeaderTemplate>
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_Claims_Bonds_Liens ID="ctrl_Claims_Bonds_Liens1" runat="server" />
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabAdmin" runat="server" TabIndex="18" HeaderText="Admin">
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_Admin ID="ctrl_Admin1" runat="server" />
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                    <uc1:TabPanel ID="tabSecurity" TabIndex="19" runat="server" HeaderText="Security">
                        <ContentTemplate>
                            <div class="wrapper">
                                <div class="innerWrapper">
                                    <uc1:ctrl_Security ID="ctrl_Security1" runat="server" />
                                </div>
                            </div>
                        </ContentTemplate>
                    </uc1:TabPanel>
                </uc1:TabContainer>
            </ContentTemplate>
        </asp:UpdatePanel>
    
    
    
    
    
    Here is the code that takes a session variable to dynamically add validation to each tab group.
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Try
    
                Select Case Session("ACTIVETAB")
                    Case 0
                        'details 1 tab
    
                        ValidationSummary1.ValidationGroup = "detailGroup"
                        cmdNewContractDocuments.ValidationGroup = "detailGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "detailGroup"
                        ValidationSummary1.ShowSummary = True
                    Case 1
                        'details2 tab
                        ValidationSummary1.ValidationGroup = "detail2Group"
                        cmdNewContractDocuments.ValidationGroup = "detail2Group"
                        cmdUpdateContractDocuments.ValidationGroup = "detail2Group"
                        ValidationSummary1.ShowSummary = True
                    Case 2
                        'Estimates tab
                        ValidationSummary1.ValidationGroup = "estimatesGroup"
                        cmdNewContractDocuments.ValidationGroup = "estimatesGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "estimatesGroup"
                    Case 3
                        'RFPDocuments
                        ValidationSummary1.ValidationGroup = "rfpDocumentsGroup"
                        cmdNewContractDocuments.ValidationGroup = "rfpDocumentsGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "rfpDocumentsGroup"
                    Case 4
                        'Bid Review
                        ValidationSummary1.ValidationGroup = "bidReviewGroup"
                        cmdNewContractDocuments.ValidationGroup = "bidReviewGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "bidReviewGroup"
                    Case 5
                        'tabInsurance
                        ValidationSummary1.ValidationGroup = "insuranceGroup"
                        cmdNewContractDocuments.ValidationGroup = "insuranceGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "insuranceGroup"
                    Case 6
                        'tabContractsDept
                        ValidationSummary1.ValidationGroup = "contractsGroup"
                        cmdNewContractDocuments.ValidationGroup = "contractsGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "contractsGroup"
                    Case 7
                        'tabLegal
                        ValidationSummary1.ValidationGroup = "legalGroup"
                        cmdNewContractDocuments.ValidationGroup = "legalGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "legalGroup"
                    Case 8
                        'tabSupplyManagement
                        ValidationSummary1.ValidationGroup = "supplyManagementGroup"
                        cmdNewContractDocuments.ValidationGroup = "supplyManagementGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "supplyManagementGroup"
                    Case 9
                        'TabSupplyManagement2
                        ValidationSummary1.ValidationGroup = "supplyManagement2Group"
                        cmdNewContractDocuments.ValidationGroup = "supplyManagement2Group"
                        cmdUpdateContractDocuments.ValidationGroup = "supplyManagement2Group"
                    Case 10
                        'tabBonds
                        ValidationSummary1.ValidationGroup = "bondsGroup"
                        cmdNewContractDocuments.ValidationGroup = "bondsGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "bondsGroup"
                    Case 11
                        'TabBonds2
                        ValidationSummary1.ValidationGroup = "bonds2Group"
                        cmdNewContractDocuments.ValidationGroup = "bonds2Group"
                        cmdUpdateContractDocuments.ValidationGroup = "bonds2Group"
                    Case 12
                        'tabContractDocuments
                        ValidationSummary1.ValidationGroup = "contractDocumentsGroup"
                        cmdNewContractDocuments.ValidationGroup = "contractDocumentsGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "contractDocumentsGroup"
                    Case 13
                        'tabSubcontracts
                        ValidationSummary1.ValidationGroup = "subContractsGroup"
                        cmdNewContractDocuments.ValidationGroup = "subContractsGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "subContractsGroup"
                    Case 14
                        'tabSubcontractors2
                        ValidationSummary1.ValidationGroup = "subContractorsGroup"
                        cmdNewContractDocuments.ValidationGroup = "subContractorsGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "subContractorsGroup"
                    Case 15
                        'tabFNAReview
                        ValidationSummary1.ValidationGroup = "fnaReviewGroup"
                        cmdNewContractDocuments.ValidationGroup = "fnaReviewGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "fnaReviewGroup"
                    Case 16
                        'tabChangeOrders
                        ValidationSummary1.ValidationGroup = "changeOrdersGroup"
                        cmdNewContractDocuments.ValidationGroup = "changeOrdersGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "changeOrdersGroup"
                    Case 17
                        'TabClaimsBondsLiens
                        ValidationSummary1.ValidationGroup = "claimsBondsLiensGroup"
                        cmdNewContractDocuments.ValidationGroup = "claimsBondsLiensGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "claimsBondsLiensGroup"
                    Case 18
                        'tabAdmin
                        ValidationSummary1.ValidationGroup = "adminGroup"
                        cmdNewContractDocuments.ValidationGroup = "adminGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "adminGroup"
                    Case 19
                        'tabSecurity
                        ValidationSummary1.ValidationGroup = "securityGroup"
                        cmdNewContractDocuments.ValidationGroup = "securityGroup"
                        cmdUpdateContractDocuments.ValidationGroup = "securityGroup"
                End Select
            Catch ex As Exception
                ' most likly session isNothing
    
            End Try
        End Sub



     

     

    A wise man can learn more from a foolish question than a fool can learn from a wise answer.
  • Re: TabContainer postback problems

    11-13-2009, 4:46 AM
    Answer

    Hi xequence,

    Have you set the AutoPostBack property of TabContainer with true? If so, the tab switch would make a full post back.
    In the other hand, I recommend you add the Validation dynamically in the TabContainer’s ActiveTabChanged event.
    Some related threads:

    http://forums.asp.net/p/1439085/3265458.aspx#3265458
    http://forums.asp.net/p/1433635/3238466.aspx#3238466

    Best regards,

    Zhi-Qiang Ni

    Microsoft Online Community Support

    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as
    Answer” if a marked post does not actually answer your question.
Page 1 of 1 (2 items)