我不确定这是否是同一个问题,但它听起来与我几个月来遇到的问题相似。在这里查看我的问题和解决方案:
我必须从 PreRender 修复 Ajax-Toolkit 中的一个错误:
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