이 방법은 실제로 여전히 목록 수집 방법을 사용하여 프런트 데스크에 전달하지만 프런트 데스크에서 약간의 변경이 이루어졌으며 컨트롤러 코드도 부분적으로 최적화되어 쓸모가 없다는 점을 언급할 가치가 있습니다. Ajax 프런트엔드 및 백엔드 상호작용이 중단되었습니다.
컨트롤러 코드는 다음과 같습니다.
//实例化公共静态字典表集合 public static List<TC_DictionaryInfo> DInfo = new List<TC_DictionaryInfo>(); /// <summary> /// TreeView视图 /// </summary> /// <returns></returns> public ActionResult May(string TypeCode) { ViewBag.TypeCode = TypeCode; List<TC_DictionaryInfo> DInfo = dbll.GetModelList("TypeCode=" + TypeCode); List<NodeModel> list = GetChildNodes(0, new NodeModel() { }, DInfo).nodes; ViewBag.data = list; } ///<summary> /// GetChildNodes方法,此方法使用递归 /// </summary> /// <param name="parentId"></param> /// <returns></returns> public NodeModel GetChildNodes(int parentId, NodeModel childnodestr, List<TC_DictionaryInfo> DInfo) { List<TC_DictionaryInfo> DictionaryList = DInfo.Where(e => Convert.ToInt32(e.ParentId) == parentId).ToList(); for (int i = 0; i < DictionaryList.Count; i++) { NodeModel NewNode = new NodeModel(); NewNode.DicId = DictionaryList[i].DicId; NewNode.text = DictionaryList[i].DICName; NewNode.ParentId = DictionaryList[i].ParentId; childnodestr.nodes.Add(NewNode); GetChildNodes(NewNode.DicId, NewNode, DInfo); } return childnodestr; }
PS: 더 이상 세 가지 방법이 아니라 두 가지 방법으로 단순화되었습니다(거의 변경 사항 없음).
프런트 엔드 코드는 다음과 같습니다.
var data='@JsonConvert.SerializeObject( ViewBag.data)'.replace(/"/g,'"'); $(function() { $('#treeview4').treeview({ color: "#428bca", data: data, onNodeSelected: function(event, data) { alert(data); } });
PS: .NET의 오픈 소스 json 형식 일련 번호 및 역직렬화 클래스 라이브러리는 다음과 같습니다. 여기서 사용
https://www.ibm.com/developerworks/cn/web/wa-lo-json/,
다음은 json 직렬화 및 역직렬화를 소개합니다. 두 가지 중요한 메서드:
JsonConvert.SerializeObject(객체 값) 직렬화,
오버로드된 메서드 JsonConvert.SerializeObject(객체 값, params JsonConverter[] 변환기)가 있습니다.
JsonConvert.DeserializeObject(문자열 값, 유형 유형), 역직렬화,
오버로드된 메서드가 있습니다. JsonConvert.DeserializeObject(문자열 값, 유형 유형, params JsonConverter[] 변환기)
이 두 가지 방법으로 기본 직렬화 및 역직렬화 요구 사항을 구현할 수 있습니다.
js의 바꾸기 기능은 특정 기호를 필요한 기호로 바꾸는 것입니다.
여기서 replacement(//g,'"') 기능은 /를 모두 "(페이지에 json 문자열이 필요하기 때문)로 바꾸는 것입니다.
이 경우 당사 페이지에서는 데이터를 읽고 표시할 수 있습니다. BZ는 여전히 이 방법이 더 좋다고 생각합니다.
위는 편집기에서 소개한 MVC5 및 Bootstrap 기반의 jQuery TreeView 트리 컨트롤(2)입니다. 데이터는 json 문자열 및 목록 컬렉션을 지원합니다. 궁금한 점이 있으시면 메시지를 남겨주시면 시간 내에 답변해 드리겠습니다. 또한 PHP 중국어 웹사이트를 지원해 주신 모든 분들께 감사드립니다!
json 문자열 및 목록 컬렉션을 지원하는 더 많은 jQuery TreeView 트리 제어 데이터를 보려면 PHP 중국어 웹사이트에 주목하세요!