このメソッドは、実際にはまだリスト収集メソッドを使用してフロントデスクに渡していますが、フロントデスクにいくつかの小さな変更が加えられており、コントローラーコードも部分的に最適化されています。 言及する価値があります: 役に立たない 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: 3 つのメソッドではなくなり、2 つのメソッドに簡素化されました (ほとんど変更はありません)。
フロントエンドのコードは次のとおりです:
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 のシリアル化と逆シリアル化の 2 つの重要なメソッドを紹介します:
JsonConvert.SerializeObject (オブジェクト値) シリアル化、
オーバーロードされたメソッド JsonConvert .SerializeObject があります。 (オブジェクト値、パラメータ JsonConverter[] コンバーター)。
JsonConvert.DeserializeObject(string value, Type type)、逆シリアル化、
オーバーロードされたメソッド JsonConvert.DeserializeObject(string value, Type type, params JsonConverter[] Converters) があります
これら 2 つのメソッドを実現できます基本的なシリアル化と逆シリアル化の要件。
js の replace の機能は、特定のシンボルを必要なシンボルに置き換えることです。
ここでの replace(//g,'"') の機能は、すべての / を " に置き換えることです (ページには JSON 文字列が必要なため)。
この場合、私たちのページはデータを読み取って表示できます。 BZはまだこっちの方が良い気がする。
上記は、エディターによって導入された MVC5 と Bootstrap に基づく jQuery TreeView ツリー コントロール (2) です。ご質問があれば、お役に立てれば幸いです。メッセージを残していただければ、編集者が時間内に返信いたします。また、PHP 中国語 Web サイトをサポートしていただきありがとうございます。
json 文字列をサポートする jQuery TreeView ツリー コントロール データとリスト コレクション関連記事の詳細については、PHP 中国語 Web サイトに注目してください。