繁体   English   中英

jstree:如何通过ID选择节点

[英]jstree: How to select a node by id

我知道我的问题有很多解决方案,但是没有人适合我。 这是我的情况:我想以编程方式通过节点ID选择一个节点,在.ascx文件中定义了一个函数:

function InitializeNodeState(nodeID) 
{
    $('#<%=ClientID %>').jstree("select_node", "#"+nodeID);
};

在vb文件中,定义了另一个函数来调用上述函数:

Public Sub SelectedRooteNodeToInitializeState(node As TreeNode)
    Dim rooteNode As TreeNode = Me.Nodes(0)
    If rooteNode.id = node.id Then
       Page.ClientScript.RegisterStartupScript(Me.GetType(),   "script","InitializeNodeState(" + rooteNode.id + ");", True)        
    End If
End Sub

我的问题是:

  1. JavaScript运行时错误: The value of the property 'InitializeNodeState' is null or undefined, not a Function object.
  2. 句子$('#<%=ClientID %>').jstree("select_node", "#"+nodeID); 似乎不起作用。

请教育我,谢谢。

这是有关我的问题的其他信息:

在用户单击jstree之前,jstree中所有节点的状态参数的值为null,因此我想通过其ID选择一个节点以在用户单击jstree之前初始化节点状态。

  1. 您将javascript函数放在哪里。 我认为它必须位于头部的script标记中(或位于头部的js文件中)。
  2. 如果您查看源代码,您会在javascript中看到什么? 您会看到什么作为客户端ID,而您会看到什么是nodeID(在HTML源代码中)。

此外,您可能需要更改此设置:

Page.ClientScript.RegisterStartupScript(Me.GetType(),   "script","InitializeNodeState(" + rooteNode.id + ");", True) 

对此:

Page.ClientScript.RegisterStartupScript(Me.GetType(),   "script","InitializeNodeState('" + rooteNode.id + "');", True) 

为您的节点设置Runat服务器
例如

<tr runat="server" id="myNode"></tr>


$('#<%=yourElement.ClientID %>').jstree("select_node", "#"+nodeID);

    Public Sub SelectedRooteNodeToInitializeState(node As TreeNode)
        Dim rooteNode As TreeNode = Me.Nodes(0)
        If rooteNode.ClientID = myNode.ClientID Then
           Page.ClientScript.RegisterStartupScript(Me.GetType(),   "script","InitializeNodeState(" + myNode.ClientID + ");", True)        
        End If
    End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM