MVC3, Jquery 및 jstree를 사용하고 있습니다. 내 목표는 컨트롤러에서 json_data를 사용하여 jstree를 표시하는 것입니다.이 방법을 최대한 연구했지만 해결하지 못했습니다. 문제는 컨트롤러의 동작에 함수 (n/노드)를 연결하는 방법이며, 컨트롤러 동작에서 만든 노드 목록을 뷰에 다시 보내고 데이터를 구문 분석하는 방법에 대해 도움을 주거나 조언을 부탁드립니다. .컨트롤러에서 jstree jquery_ajax 만들기
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult GetItems()
{
int cnt = 0;
var itemRawData = (from ItemInfo itemtInfo in _itemInfoCollection
where itemInfo.Name == "val1" || itemInfo.Name == "val2"
select new itemSpecifications
{
itemName = itemInfo.Name,
itemVersion = itemInfo.MajorRevision.ToString() + "." + itemInfo.MinorRevision.ToString(),
iCount = ItemInfo.Count,
ilist = itemInfo.Values.Cast<subitem>().ToList(),
index = cnt++ });
TreeNode node = new TreeNode();
List<TreeNode> nodelist = new List<TreeNode>();
foreach (var t in itemRawData)
{
nodelist.Add(new TreeNode
{
data = String.Format("{0} {1} ({2})",t.itemName, t.itemVersion, t.iCount.ToString()),
state = "closed",
children = t.ilist
});
}
return Json(nodelist);
}
어떤 예를 나 조언이 크게 감사합니다 :
<script type="text/javascript">
$(function() {
$("#demo1").jstree({
"themes": {
"theme": "default",
"dots": true,
"icons": false,
"url": "/content/themes/default/style.css"
},
"json_data": {
"ajax": {
"async": true,
"url": "/Home/GetItems",
"type": "POST",
"data": function (n) {
return { id: n.attr ? n.attr("id") : 0 }
"dataType": "text json",
"contentType": "application/json charset=utf-8",
"progressive_render": true
}
}
},
"plugins": ["themes", "json_data", "dnd"]
})
});
이곳은 GetItems() 내 컨트롤러 코드입니다!