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? Спасибо