【发布时间】:2015-05-24 12:41:19
【问题描述】:
我正在使用 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>
在这三种方法中,第一种方法会导致节点同时被选中和检查。第二个和第三个导致既没有选择也没有检查的节点。我想得到一个已选中但未选中的节点。
【问题讨论】: