Ajax Tookit TabPanel Invisible Tag Bug

后端 未结 1 1855
悲哀的现实
悲哀的现实 2020-12-11 18:18

I have encountered a slightly bizarre bug while using the ajax control toolkit TabPanel. I have 4 tabs in row like so:

[Tab1][Tab2][Tab3][Tab4]

Now tab 2 sho

相关标签:
1条回答
  • 2020-12-11 18:53

    I'm not sure if this is the same issue but it sounds similar to one that i've had for few months. Have a look here for my problem and the solution:

    • forums.asp.net: hiding TabContainer TabPanels

    I had to fix a Bug in Ajax-Toolkit from PreRender:

    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
    
    0 讨论(0)
提交回复
热议问题