我有一个带有5个标签的TabContainer。这非常简单。每个选项卡上都有一组用户控件。 TabContainer本身设置为OnDemand =“True”。某些用户控件已定义PreRender覆盖。
我注意到,即使PreRender不在活动选项卡上,也会调用PreRender。我知道这是页面上控件的正常页面生命周期,但在这种情况下有没有办法阻止隐藏标签的流程?
我知道在MultiView控件的情况下,隐藏的控件不参与渲染生命周期。
这是代码的一小部分,减去其他几个标签。一般的问题是,在PreRender上我们加载了数据并做出了一些数据决策,而在数据密集度较高的选项卡上,它会减慢速度,这一点也不会成为问题。
<asp:TabContainer ID="tabMain" runat="server" ActiveTabIndex="0" OnDemand="true"
AutoPostBack="false" TabStripPlacement="Top" CssClass="TabMenu" ScrollBars="Auto"
Width="1250" UseVerticalStripPlacement="false" VerticalStripWidth="120px">
<asp:TabPanel ID="tabEmployeeData" runat="server" HeaderText="Data" OnDemandMode="Always"
Enabled="true" ScrollBars="Auto">
<ContentTemplate>
<%= DateTime.Now.ToLongTimeString() %>
<table class="GeneralTable">
<%--Employee Information--%>
<tr>
<td>
<asp:ControlEmployeeData ID="ControlEmployeeData1" runat="server" Width="981px" />
<br />
</td>
</tr>
</table>
</ContentTemplate>
</asp:TabPanel>
<asp:TabPanel ID="tabContactData" runat="server" HeaderText="Contact" OnDemandMode="Always">
<ContentTemplate>
<%= DateTime.Now.ToLongTimeString() %>
<table class="GeneralTable">
<tr>
<td colspan="2">
<asp:ControlEmployeeAddressData ID="ControlEmployeeAddressData1" runat="server" />
<br />
</td>
</tr>
<tr>
<td>
<asp:ControlEmployeePhoneData Width="450px" ID="ControlEmployeePhoneData1" runat="server" />
<br />
</td>
<td>
<asp:ControlEmployeeEmailData Width="450px" ID="ControlEmployeeEmailData1" runat="server" />
<br />
</td>
</tr>
<tr>
<td colspan="2">
<asp:ControlEmployeeEmergencyContactData ID="ControlEmployeeEmergencyContactData1"
runat="server" Width="981px" />
<br />
</td>
</tr>
</table>
</ContentTemplate>
</asp:TabPanel>
</asp:TabContainer>