2010-09-01 62 views
1

我在aspx頁面標籤的容器啓用禁用的標籤,我想啓用禁用aspx頁面的最後一個標籤我的標籤容器像下面在標籤的容器

<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一個shotrcut以啓用在客戶端此標籤面板,如下圖所示,但該快捷方式僅使標籤不兩個用戶在最後一個選項卡中控制ptresent。啓用最後一個選項卡的代碼是:

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

如何啓用最後一個選項卡以及最後一個選項卡中的控件?

回答

2

當您從服務器端禁用選項卡時,它將禁用作爲服務器端的所有組成部分子選項。所以你需要在這裏做的是發佈啓動java腳本來禁用客戶端的標籤。在服務器端,選項卡及其所有子控件始終保持啓用狀態。

+0

我已經通過註釋頁面加載事件ammended的代碼作爲我的帖子上面顯示上方之前,在頁面的結尾將下面的代碼在JavaScript解決問題禁用面板代碼並使用JavaScript禁用選項卡面板。 現在不是打開頁面,而是顯示Microsoft JScript rutime錯誤:null或不是對象 - 在最近添加的以下行上,如下所示 2010-09-01 08:46:21

+0

問題在於,您的腳本在AJAX選項卡初始化之前運行。您必須發佈啓動腳本(使用ScriptManager.RegisterStartupScript或Page.ClientScript.RegisterStartupScript,基於其正常的回傳或AJAX回發)。啓動腳本被放置在html頁面的末尾(所以它們被延遲調用)。如果你可以在pageLoad函數中封裝這個腳本,那麼最好(參見http://encosia.com/2007/08/01/simplify-aspnet-ajax-client-side-page-initialization/)。 – VinayC 2010-09-01 08:54:54

+0

謝謝你的幫助我已經解決了這個問題,把下面的代碼放在頁面末尾的javascript中,在 var tc = document.getElementById('<%= tabContainer.ClientID%> 「); tc.firstChild.childNodes [2] .style.visibility =「hidden」; – 2010-09-01 09:43:50

1

我已經只是</asp:content>

var tc = document.getElementById('<%= tabContainer.ClientID %>'); tc.firstChild.childNodes[2].style.visibility = "hidden";