在选项卡容器中启用禁用选项卡

时间:2010-09-01 07:36:34

标签: c# asp.net ajax

我在aspx页面中有一个tab容器,我想启用禁用aspx页面中的最后一个选项卡我的tab容器如下所示

<asp:TabContainer runat="server" ID="tabContainer">
<asp:TabPanel runat="server" ID="tabSettings" HeaderText="Settings">
<HeaderTemplate>Settings</HeaderTemplate>
<ContentTemplate>
<spsp:SlidingParametersSettingsPage ID="SlidingParametersSettingsPage" runat="server" />
</ContentTemplate>
</asp:TabPanel>
<asp:TabPanel runat="server" ID="tabRegionSelectionSettings" HeaderText="Exclude / Include Regions">
<HeaderTemplate>Exclude / Include Regions</HeaderTemplate>
<ContentTemplate>
<rssp:RegionSelectionSettingsPage ID="RegionSelectionSettingsPage" runat="server" />
</ContentTemplate>
</asp:TabPanel>
<asp:TabPanel runat="server" ID="tabAdvanceSettings" HeaderText="Advance Settings">
<HeaderTemplate>Advance Settings</HeaderTemplate>
<ContentTemplate>
<sfpsp:SmokeFireParametersSettingsPage ID="SmokeFireParametersSettingsPage" runat="server" />
<ssp:SakbotSettingsPage ID="SakbotSettingsPage" runat="server" />
</ContentTemplate>
</asp:TabPanel>
</asp:TabContainer>

<script language="javascript" type="text/javascript">
    $find('<%=tabContainer.ClientID%>').get_tabs()[2].set_enabled(false);
</script>

现在,为了禁用最后一个标签,我在页面加载后的代码中使用了以下内容:

//tabAdvanceSettings.Enabled = false;

我还希望在用户使用像Ctrl + Shif + A这样的镜头选项时在客户端启用此选项卡面板,如下所示,但此快捷方式仅启用选项卡而不是最后一个选项卡中的两个用户控件ptresent。启用最后一个选项卡的代码是:

if (e.keyCode == 65 && isCtrl == true && isShift == true) // Ctrl + Shift + A
{
    $find('<%=tabContainer.ClientID%>').get_tabs()[2].set_enabled(true);            
}

如何启用最后一个标签以及最后一个标签中的控件?

2 个答案:

答案 0 :(得分:2)

当您从服务器端禁用选项卡时,它将禁用所有组件子项作为服务器端。所以你需要做的是发出启动java脚本来禁用客户端的选项卡。在服务器端,选项卡及其所有子控件将始终保持启用状态。

答案 1 :(得分:1)

我已经通过在</asp:content>

之前的页面末尾的javascript中放置以下代码来解决问题
var tc = document.getElementById('<%= tabContainer.ClientID %>'); tc.firstChild.childNodes[2].style.visibility = "hidden";