Maison  >  Article  >  php教程  >  Les données du contrôle d'arborescence jQuery TreeView prennent en charge la collection de chaînes et de listes JSON.

Les données du contrôle d'arborescence jQuery TreeView prennent en charge la collection de chaînes et de listes JSON.

高洛峰
高洛峰original
2016-12-28 13:04:161949parcourir

Cette méthode utilise toujours la méthode de collecte de liste pour la transmettre à la réception, mais a apporté quelques petites modifications à la réception, et le code du contrôleur a également été partiellement optimisé. Il convient de mentionner qu'il s'agit d'Ajax inutile. les interactions front-end et back-end sont abandonnées.

Le code du contrôleur est le suivant :

//实例化公共静态字典表集合
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 : Il ne s'agit plus de trois méthodes mais simplifié à deux méthodes (presque aucun changement).

Le code frontal est le suivant :

var data=&#39;@JsonConvert.SerializeObject( ViewBag.data)&#39;.replace(/"/g,&#39;"&#39;);
$(function() {
$(&#39;#treeview4&#39;).treeview({
color: "#428bca",
data: data,
onNodeSelected: function(event, data) {
alert(data);
}
});

PS : La bibliothèque de numéros de série et de classes de désérialisation au format json open source sous .NET est utilisé ici

https://www.ibm.com/developerworks/cn/web/wa-lo-json/,

Ce qui suit présente la sérialisation et la désérialisation json Deux méthodes importantes :

Sérialisation JsonConvert.SerializeObject (valeur de l'objet),

Il a une méthode surchargée JsonConvert.SerializeObject (valeur de l'objet, paramètres JsonConverter[] convertisseurs).

JsonConvert.DeserializeObject (valeur de chaîne, type de type), désérialisation,

Il a une méthode surchargée JsonConvert.DeserializeObject (valeur de chaîne, type de type, paramètres convertisseurs JsonConverter[])

Ces deux méthodes peuvent mettre en œuvre les exigences de base en matière de sérialisation et de désérialisation.

La fonction de replace dans js est de remplacer des symboles spécifiques par les symboles dont vous avez besoin.

La fonction de replace(//g,'"') ici est de remplacer tout / par "(car la page nécessite une chaîne json).

Dans ce cas, notre page peut lire les données et les afficher. BZ pense toujours que cette méthode est meilleure.

Ce qui précède est le contrôle d'arborescence jQuery TreeView (2) basé sur MVC5 et Bootstrap introduit par l'éditeur. Les données prennent en charge les chaînes json et les collections de listes. J'espère que cela vous sera utile si vous avez des questions. Si vous avez des questions, laissez-moi un message et je vous répondrai à temps. Je voudrais également vous remercier tous pour votre soutien au site Web PHP chinois !

Pour plus de données de contrôle d'arborescence jQuery TreeView prenant en charge les chaînes json et les collections de listes, veuillez prêter attention au site Web PHP chinois pour les articles connexes !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn