Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在选项卡容器中启用或禁用选项卡_C#_Asp.net_Ajax - Fatal编程技术网

C# 在选项卡容器中启用或禁用选项卡

C# 在选项卡容器中启用或禁用选项卡,c#,asp.net,ajax,C#,Asp.net,Ajax,我在aspx页面中有一个选项卡容器,我想启用并禁用aspx页面中的最后一个选项卡我的选项卡容器如下所示 <asp:TabContainer runat="server" ID="tabContainer"> <asp:TabPanel runat="server" ID="tabSettings" HeaderText="Settings"> <HeaderTemplate>Settings</HeaderTemplate> <Content

我在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>
当用户使用如下图所示的Ctrl+Shif+a这样的快捷键时,我还希望在客户端启用此选项卡面板,但此快捷键仅启用选项卡,而不启用最后一个选项卡中的两个用户控件ptresent。启用最后一个选项卡的代码为:

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

如何启用最后一个选项卡以及最后一个选项卡中的控件?

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

我已通过将以下javascript代码放在页面末尾的

var tc=document.getElementById(“”);tc.firstChild.childNodes[2].style.visibility=“hidden”;

我在上面的帖子中通过注释页面加载事件代码来禁用面板,并使用javascript禁用选项卡面板,从而修改了上述代码。现在,它不再打开页面,而是显示Microsoft JScript rutime错误:null或不是对象-在我最近添加的以下行上,如下所示$find(“”)。get_tabs()[2]。set_enabled(false);这里的问题是,在初始化AJAX选项卡之前,脚本正在运行。您必须发出启动脚本(使用ScriptManager.RegisterStartupScript或Page.ClientScript.RegisterStartupScript,具体取决于它是正常回发还是AJAX回发)。启动脚本被放置在html页面的末尾(因此它们被调用得很晚)。如果您能将此脚本包装在pageLoad函数中(请参阅),那就最好了。感谢您的帮助,我已通过将以下javascript代码放置在页面末尾var tc=document.getElementById(“”)之前解决了此问题;tc.firstChild.childNodes[2].style.visibility=“hidden”;
if (e.keyCode == 65 && isCtrl == true && isShift == true) // Ctrl + Shift + A
{
    $find('<%=tabContainer.ClientID%>').get_tabs()[2].set_enabled(true);            
}
var tc = document.getElementById('<%= tabContainer.ClientID %>'); tc.firstChild.childNodes[2].style.visibility = "hidden";