RadTreeView не отвечает после нескольких обратных передач в IE

У меня есть radtreeview, который прекрасно работает в Chrome, однако в Internet Explorer узлы станут неактивными после нескольких постов назад.

Как только узел становится неактивным, я могу просто свернуть или развернуть любой другой узел, чтобы сделать его кликабельным еще раз.

Соответствующие детали: проект Webforms VB.NET ASP.NET

Вот HTML-код radtreeview:

<telerik:RadTreeView ID="TreeView1" EnableViewState="false" runat="server" Font-Names="Verdana" Font-Size="9pt"
                    OnClientNodeExpanded="rtvExplore_OnNodeExpandedCollapsed" OnClientNodeCollapsed="rtvExplore_OnNodeExpandedCollapsed"
                    Height="90%" ImageSet="Simple" NodeWrap="True" Width="325px" NodeIndent="10" OnNodeClick="TreeView1_SelectedNodeChanged">
</telerik:RadTreeView>

Это может показаться странным (у меня есть свои причины!), Но я сохраняю это состояние, используя XML, сохраненный на диске сервера и в файлах cookie.

Соответствующий код на стороне сервера:

Private Sub SaveTreeview()
    TreeViewUtilities.WriteToDrive(TreeView1.GetXml(), User.Identity.Name.Split("\")(1))
End Sub

Private Sub LoadTreeview()
    TreeView1.LoadXml(TreeViewUtilities.RetrieveTreeView(User.Identity.Name.Split("\")(1)))
End Sub


Public Sub SetExpandedNodes()
    Dim cookie As HttpCookie = Request.Cookies("expandedNodes")
    If cookie IsNot Nothing Then
        Dim expandedNodeValues As String() = cookie.Value.Split("*"c)
        For Each nodeValue As String In expandedNodeValues
            Dim expandedNode As RadTreeNode = TreeView1.FindNodeByValue(HttpUtility.UrlDecode(nodeValue))
            If expandedNode IsNot Nothing Then
                expandedNode.Expanded = True
            End If
        Next
    End If
End Sub

Protected Sub TreeView1_SelectedNodeChanged(ByVal sender As Object, ByVal e As RadTreeNodeEventArgs)

    SetExpandedNodes()

End Sub

JavaScript для узла свернуть / развернуть:

function rtvExplore_OnNodeExpandedCollapsed(sender, eventArgs) {
    var allNodes = eventArgs._node.get_treeView().get_allNodes();

    var i;
    var selectedNodes = "";

    for (i = 0; i < allNodes.length; i++) {
        if (allNodes[i].get_expanded())
            selectedNodes += allNodes[i].get_value() + "*";
    }

    console.log("EXPANDED NODES", selectedNodes);

    Set_Cookie("expandedNodes", selectedNodes, 30);
}

Дополнительные примечания: вы можете заметить, что вы не видите, что SaveTreeview() вызывается - это потому, что он вызывается в нескольких местах, где узлы добавляются или удаляются из дерева. Я могу добавить отрывки, если это будет необходимо, но я не чувствую, что это то, что IE получает в трусиках.

Что мне нужно сделать, чтобы заставить это работать в Internet Explorer? Спасибо

0 ответов

Другие вопросы по тегам