2010-09-20 5 views
0

Comment obtenir la valeur du nœud sélectionné de asp.net treeview à partir de javascript?ASP.NET & JavaScript: Obtenir la valeur arborescente de l'objet de la vue arborescente

Je arbre:

<asp:TreeView ID="dtDivisions" runat="server" onclick="OnDivisionChecked(event);" ShowCheckBoxes="All" ShowLines="true"> 
</asp:TreeView> 

Je remplirai en utilisant la méthode suivante:

private static void BindTreeViewNode(TreeView control, TreeNode parentNode) 
{ 
    int parentId = parentNode == null ? -1 : Convert.ToInt32(parentNode.Value); 
    var list = DictionariesDAO.GetListByParentId(DictionaryType.Divisions, parentId); 

    foreach (var item in list) 
    { 
    TreeNode node = new TreeNode(item.Name, item.Id.ToString()) 
           { 
            ImageUrl = item.HasChilds ? "js/dtree/img/folder.gif" : "js/dtree/img/page.gif", 
            NavigateUrl = item.Id.ToString(), 
            SelectAction = TreeNodeSelectAction.None 
           }; 

    if (parentNode == null) 
    { 
     node.ImageUrl = "js/dtree/img/base.gif"; 
     control.Nodes.Add(node); 
    } 
    else 
    { 
     parentNode.ChildNodes.Add(node); 
    } 

    if (item.HasChilds) 
    { 
     BindTreeViewNode(control, node); 
    } 
    } 
} 

je besoin OnDivisionChecked javascript méthode obtenir la valeur du nœud sélectionné. J'essaie de le mettre en NavigationUrl propriété de TreeView mais sans succès.

Ex:

var snode = document.getElementById(TreeNode.id.replace('CheckBox', '').replace('dtDivisionsn', 'dtDivisionst')); 
document.getElementById('ctl00_PlaceHolderMain_hidDivisionsId').value = snode.href; 

S'il vous plaît aider! :)

Répondre

0

Voici ma solution, mais peut-être ne correspond pas à votre cas. mais j'aime partager cela avec vous. l'idée est très simple, j'ai mis Tooltip de Treeview node avec le Value et l'utiliser dans mon code js.

var node = new TreeNode 
{ 
    Text = "SOME_TEXT", 
    Value = "VALUE", 
    ToolTip = "VALUE" 
}; 

Puis est js:

$('.treeview input[type=checkbox]').on('change', function() { 
    var value = $(this).attr('title'); // this will get you the VALUE 
}); 
Questions connexes