我正在使用jsTree 3并尝试根据标准预先检查某些行。
以下是我配置树的方法: -
$(function () {
$("#ProductInterests").jstree
({
"core" : { "themes" : { "icons" : false }},
"plugins": ["themes", "html_data", "checkbox"]
});
});
然后我在网上的其他地方找到了三个建议的解决方案(if的前半部分应该导致检查节点,第二部分应该导致未经检查的节点): -
<ul>
@foreach (var productGroup in ViewBag.ProductGroups)
{
<li class="jstree-open">@productGroup.Name
<ul>
@foreach (var product in productGroup.Products)
{
if (Model.LeadProductInterests.Any(lpi => lpi.ProductID == product.ID))
{
<li data-jstree='{"selected":true}'>@product.Name</li>
<li data-jstree='{"state":{"checked":true}}'>@product.Name</li>
<li class="jstree-checked">@product.Name</li>
}
else
{
<li data-jstree='{"selected":false}'>@product.Name</li>
<li data-jstree='{"state":{"checked":false}}'>@product.Name</li>
<li>@product.Name</li>
}
}
</ul>
</li>
}
</ul>
在这三种方法中,第一种方法是选择和检查节点。第二个和第三个结果是既未选中也未选中的节点。我想获得一个已选中但未被选中的节点。
答案 0 :(得分:3)
从repo获取最新代码 - 这是一个已知错误,现已修复。另请注意,为了拥有单独的已检查和已选择的集合,您需要将checkbox.tie_selection
设置为false
(如下面的小提琴中所示)。
获得最新副本(不是3.1.1,但实际的回购代码:https://github.com/vakata/jstree/archive/master.zip)后,您可以使用:
<li data-jstree='{"checked":true}'>@product.Name</li>