Asp.net Ajax Tookit选项卡面板不可见标记错误

Asp.net Ajax Tookit选项卡面板不可见标记错误,asp.net,ajaxcontroltoolkit,Asp.net,Ajaxcontroltoolkit,我在使用ajax控制工具包TabPanel时遇到了一个稍微奇怪的错误。我的行中有4个选项卡,如下所示: [表一][表二][表三][表四] 现在,选项卡2应该只在某些情况下出现,因此其可见性设置为false。然而,虽然它是不可见的,但如果我单击选项卡3,它将在切换到选项卡1之前加载该选项卡。同样,选择tab4将加载tab4,但随后立即切换到tab3。在服务器端,ActiveTabChanged事件被点击两次,一次是针对正确选择的选项卡,一次是针对它正在切换的选项卡 如果我将Tab2移动到选项卡行的

我在使用ajax控制工具包TabPanel时遇到了一个稍微奇怪的错误。我的行中有4个选项卡,如下所示:

[表一][表二][表三][表四]

现在,选项卡2应该只在某些情况下出现,因此其可见性设置为false。然而,虽然它是不可见的,但如果我单击选项卡3,它将在切换到选项卡1之前加载该选项卡。同样,选择tab4将加载tab4,但随后立即切换到tab3。在服务器端,ActiveTabChanged事件被点击两次,一次是针对正确选择的选项卡,一次是针对它正在切换的选项卡


如果我将Tab2移动到选项卡行的末尾,则一切正常。阅读了一下工具箱,我认为这是一个错误,与活动选项卡索引有关,javascript将其设置为比应该设置的低一个,但我不确定如何解决它。

我不确定这是否是同一个问题,但听起来与我几个月来遇到的问题类似。在这里查看我的问题和解决方案:

我必须从PreRender修复Ajax工具包中的一个错误:

Private Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
    'ensure that the Tabs stay invisible that have Visible=False on markup and dont get visible programmatically'  
    Me.TabThatShouldStayInvisible.Visible = False
    FixTabPanelVisible(TabContainer1)
End Sub

Protected Sub FixTabPanelVisible(ByVal tabcontainer As AjaxControlToolkit.TabContainer)
    For Each tp As AjaxControlToolkit.TabPanel In tabcontainer.Tabs
        Dim oldVisible As Boolean = CBool(IIf(IsNothing(ViewState(tp.UniqueID + "_Display")), True, ViewState(tp.UniqueID + "_Display")))
        If Not tp.Visible Then
            ViewState(tp.UniqueID + "_Display") = False
            DisableTab(tabcontainer, tabcontainer.Tabs.IndexOf(tp))
        ElseIf tp.Visible AndAlso Not oldVisible Then
            ViewState(tp.UniqueID + "_Display") = True
            EnableTab(tabcontainer, tabcontainer.Tabs.IndexOf(tp))
        End If
        tp.Visible = True
    Next
    Dim fixScript As New StringBuilder()
    fixScript.Append("function DisableTab(container, index) {$get(container.get_tabs()[index].get_id() + ""_tab"").style.display = ""none"";}")
    fixScript.Append("function EnableTab(container, index) {$get(container.get_tabs()[index].get_id() + ""_tab"").style.display = """";}")
    ScriptManager.RegisterStartupScript(Me, Me.GetType(), "FixScriptReg", fixScript.ToString(), True)
End Sub

Protected Sub EnableTab(ByVal container As AjaxControlToolkit.TabContainer, ByVal index As Integer)
    Dim sFunction As String = "function () {EnableTab($find('" & container.ClientID & "')," & index & ");}"
    ScriptManager.RegisterStartupScript(Me, Me.GetType(), "EnableTabFun" & index, "Sys.Application.add_load(" & sFunction & ");", True)
End Sub

Protected Sub DisableTab(ByVal container As AjaxControlToolkit.TabContainer, ByVal index As Integer)
    Dim sFunction As String = "function () {DisableTab($find('" & container.ClientID & "')," & index & ");}"
    ScriptManager.RegisterStartupScript(Me, Me.GetType(), "DisableTabFun" & index, "Sys.Application.add_load(" & sFunction & ");", True)
End Sub