0
我目前正在制作一个C#MVC应用程序,其中我为其中一个UI元素使用了jsTree。我使用jsTree复选框。我已经可以检索所有选定的值并将它们传递给我的控制器,以便它完成它的工作,在那里没有问题。在jstree中为复选框设置初始状态
但我在加载网页时填写jsTree时遇到了问题。目前我有这样的代码:
@foreach (var obj in listServers)
{
<li id="[email protected]">
@obj.DBServerName
<ul>
@{
System.Data.DataSet myDS = Model.findDataBasesByServerID(obj.DBServerID);
foreach (System.Data.DataRow row in myDS.Tables[0].Rows)
{
if (dbRepos.isThisDatabaseSelectedForThisUser(Model.LoginID, obj.DBServerID, nameOfDB) == true) //true -> user has selected this earlier and needs to be selected
{
<li class="jstree-clicked get_checked" id="@(obj.DBServerID)[email protected]">@nameOfDB </li>
}
else //false -> user hasn't selected this earlier. Make a normal, unchecked checkbox
{
<li id="@(obj.DBServerID)[email protected]">@nameOfDB </li>
}
}
}
</ul>
</li>
}
该代码只能部分工作。自然,我的jsTree获得了很好,但默认值不检查。问题不在于我的isThisDatabaseSelectedForThisUser方法,导致我调试并测试它。它按预期工作。我猜想< li>元素的类有问题,但我无法弄清楚什么。 get_checked属性在运行时给出,表示复选框已被点击并因此被选中。请注意,我正在处理jsTree的复选框值,因此选择< li>元素的文本并不重要。
正如我从演示中看到的那样,''''里面的''''''''''''得到'jstree-clicked'类而不是'li'标签。看到下面的HTML 'initially selected' 所以我认为你需要**重组你的HTML **。 – 2015-04-02 07:56:26