Adding nodes to a treeview instance is easy - just create a new JQTreeNode instance for each node, set its Text property and add it to the Nodes collection of the treeview instance. You can add unlimited levels of nested nodes at once - each node has its own Nodes collection of child nodes.
@using Trirand.Web.Mvc
@using MVCDemo.Models
@using System.Web.UI.WebControls

<!DOCTYPE html>
<html lang="en-us">
    <meta charset="utf-8">
    <title>jqTreeView for ASP.NET MVC - Text Only</title>    
     <!-- jQuery runtime minified -->
    <script src="~/Scripts/jquery-3.2.1.min.js" type="text/javascript"></script>
    <!-- The jqTreeView client-side javascript -->
    <script src="~/Scripts/trirand/jquery.jqTreeView.min.js" type="text/javascript"></script>
    <!-- The jQuery UI theme that will be used by the grid. -->
    <link rel="stylesheet" type="text/css" href="" />
    <!-- The jQuery UI theme extension jqTreeView needs -->    
    <link rel="stylesheet" type="text/css" href="~/Content/themes/ui.jqtreeview.css" />
                    new JQTreeView
                        DataUrl = Url.Action("TreeView_TextOnly_DataRequested"),                    
                        Height = Unit.Pixel(300),
                        Width = Unit.Pixel(300)                               
                    }, "treeview"))           
    <br />
    <br />
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Trirand.Web.Mvc;

namespace MVCDemo.Controllers.Tree
    public partial class TreeController : Controller
        public ActionResult TextOnly()
            return View();

        public JsonResult TreeView_TextOnly_DataRequested()
            var tree = new JQTreeView();

            List<JQTreeNode> nodes = new List<JQTreeNode>();
            nodes.Add(new JQTreeNode { Text = "One", Url = "" });
            nodes.Add(new JQTreeNode { Text = "Two", Expanded = true });
            nodes.Add(new JQTreeNode { Text = "Three" });

            var secondNode = nodes.Find(n => n.Text == "Two");

            secondNode.Nodes.Add(new JQTreeNode { Text = "2.1" });
            secondNode.Nodes.Add(new JQTreeNode { Text = "2.2", Expanded = true });
            secondNode.Nodes.Add(new JQTreeNode { Text = "2.3" });

            secondNode.Nodes.Find(n => n.Text == "2.2").Nodes.Add(new JQTreeNode { Text = "2.2.1" });
            secondNode.Nodes.Find(n => n.Text == "2.2").Nodes.Add(new JQTreeNode { Text = "2.2.2" });
            secondNode.Nodes.Find(n => n.Text == "2.2").Nodes.Add(new JQTreeNode { Text = "2.2.4" });
            secondNode.Nodes.Find(n => n.Text == "2.2").Nodes.Add(new JQTreeNode { Text = "2.2.3" });            

            return tree.DataBind(nodes);
Switch theme:

Theming is based on the very popular jQuery ThemeRoller standard. This is the same theming mechanism used by jQuery UI and is now a de-facto standard for jQuery based components. The benefits of using ThemeRoller are huge. We can offer a big set of ready to use themes created by professional designers, including Windows-like themes (Redmond), Apple-like theme (Cupertino), etc. In addition to that any jQuery UI controls on the same page will pick the same theme.

Last, but not least, you can always roll your own ThemeRoller theme, using the superb Theme Editor

To use a theme, simply reference 2 Css files in your Html <head> section - the ThemeRoller theme you wish to use, and the jqGrid own ThemeRoller Css file. For example (Redmond theme):

<link rel="stylesheet" type="text/css" media="screen" href="/themes/redmond/jquery-ui-1.8.2.custom.css" />
<link rel="stylesheet" type="text/css" media="screen" href="/themes/ui.jqgrid.css" />