簡體   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