如何在jstree中加载时检查一些选定的项目。 (选中=“已选中”无效)

时间:2013-07-08 05:17:29

标签: javascript jquery tree jstree treemodel

在MVC 4中,我使用jstree。在创建操作中我没有问题。但是在编辑操作中,我将true值设置为某些treemodel项。模型就像:

public class RecursiveObject
{             
    public string data { get; set; }
    public Int64 id { get; set; }  
    public FlatTreeAttribute attr { get; set; }
    public List<RecursiveObject> children { get; set; }
}

public class FlatTreeAttribute
{
    public string id;
    public bool selected;
}

当我填写树模型时,我将selected = true;设置为某些项目并在视图中使用它:

json_data: {
                "ajax": {
                    url: "@Url.Action("GetTreeData", "MyController")",
                    type: "POST",
                    dataType: "json",
                    contentType: "application/json charset=utf-8"
                }
            },

但是在视野中,所有项目都未经检查。我看到一些<li>标记有selected = "selected",但这不会影响它的检查。

当我手动检查项目 时,jstree-unchecked会更改为jstree-checked课程。这意味着selected = "selected"不起作用。

enter image description here

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我找到了解决问题的方法。

.bind("loaded.jstree", function (event, data) {
    $('li[selected=selected]').each(function () {
        $(this).removeClass('jstree-unchecked').addClass('jstree-checked');
    });
});