Search code examples
asp.net-mvc-5jstreerazorengine

Tree View in ASP.NET MVC5


I need to create a tree view in asp.net mvc5 framework for the recursive outputs. This is my model class

public class ProcSearchModel
{
    /// <summary>
    /// 
    /// </summary>

    public string TableName { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string  DirectoryPath { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public List<string> ProceduresName { get; set; }

 //   public List<ProcSearchModel> = 
}

That stores the list of result in ProceduresName list. Now for each Procedure name in the list there is another list of names in it. Which I need to populate as tree view..

Presently this is my controller function:

    public ActionResult SearchProcedure(ProcSearchModel procSearchModel)
    {
        List<string> lstString = new List<string>();
        //if (procSearchModel != null)
        //{
            try
            {
                var txtFiles = Directory.EnumerateFiles(procSearchModel.DirectoryPath, "*.sql", SearchOption.AllDirectories);

                // pattern to capture the Stored procedue name
              //  string cpattern = @"(CREATE PROCEDURE|ALTER PROCEDURE)\s*(?<proc_name>(\w|_|\[|\]|\.)*)(.|\n)*" + procSearchModel.TableName;
                string cPattern = @"(CREATE PROCEDURE|ALTER PROCEDURE)\s*(?<proc_name>(\w|_|\[|\]|\.)*)";
                string tPattern = procSearchModel.TableName;


                foreach (string currentFile in txtFiles)
                {

                    string content = System.IO.File.ReadAllText(currentFile);

                    if(Regex.IsMatch(content,tPattern,RegexOptions.IgnoreCase) && Regex.IsMatch(content,cPattern,RegexOptions.IgnoreCase))
                    {
                        Match match = Regex.Match(content, cPattern, RegexOptions.IgnoreCase);
                        lstString.Add(match.Groups["proc_name"].Value);


                    }
                }

                procSearchModel.ProceduresName = lstString;
            }

            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        //}

        return View(procSearchModel);
    }

Now plz help me how to populate the tree view by usnig nested list with jstree plugin


Solution

  • Create a recursive node structure of the nodes (or objects) as you need in the hierarchy and link them as in a tree. Then pass that object in a tree

         class dummyObject{
            int num;
            String data;
            List<dummyObject> d = new List<dummyObject>();     
         }
    

    Use this type of class object to create hierarchy structure and then pass them into jstree (http://www.jstree.com/) plugin call..... Rest will be done the plugin.