私は他の誰かのコードからこれに取り組み始めました。そのため、データセットはいっぱいになりました。私の仕事は、データベースの値に基づいてロード時にノードを展開する機能を追加することでした。しばらく時間がかかりましたが、このJqueryは、私がそうするとはまったく思っていなかったときに機能しました。
onPostInit: function(isReloading, isError) {
$("#test-div").dynatree('getRoot').visit(function(node){
if (node.data.IsExpandable === true) {
node.expand(true);
}
});
IsExpandable は、データベースの bool db 列を表します。Jquery がその分野に対応できるとは思いませんでしたが、実現しました。コントローラーコードがそれを可能にしたことは知っています。誰でも理由を説明できますか? 今のところ、AsEnumerable() が何をしているのか、r.Field が何をしているのかについて、私は少し確信が持てないからです。コントローラーはこちら
//Here Ds equals a filled dataset //TreeData is model class w/ these properties
var myData = Ds.Tables[0].AsEnumerable().Select(r => new TreeData
{
title = r.Field<string>("Name"),
key = r.Field<int>("CategoryId"),
ParentID = r.Field<int?>("ParentId"),
IsExpandable = r.Field<bool?>("IsExpandable"),
icon = false,
addClass = "custom1"
});