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.