You can se the JQTreeView.CheckBoxes property of the treeview to true if you wish to show a checkbox next to each node. The Checked property of each JQTreeNode instance can be set to mark the node as checked. Upon postback the {TreeViewID}_checkState} field holds a list of all checked nodes on the client-side in JSON format. Please, refer to the Controller tab to see details.
@using Trirand.Web.Mvc
@using MVCDemo.Models
@using System.Web.UI.WebControls

<!DOCTYPE html>
<html lang="en-us">
<head>
    <meta charset="utf-8">
    <title>jqTreeView for ASP.NET MVC - CheckBoxes</title>     
    <!-- jQuery runtime minified -->
    <script src="~/Scripts/jquery-3.0.0.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="http://code.jquery.com/ui/1.11.4/themes/redmond/jquery-ui.css" />
    <!-- The jQuery UI theme extension jqTreeView needs -->    
    <link rel="stylesheet" type="text/css" href="~/Content/themes/ui.jqtreeview.css" />
</head>
<body>    

    @{ Html.BeginForm("CheckBoxes", "Tree"); }           

    <div>
    @(Html.Trirand().JQTreeView(
                new JQTreeView
                {
                    DataUrl = Url.Action("TreeView_CheckBoxes_DataRequested"),
                    Height = Unit.Pixel(200),
                    Width = Unit.Pixel(300),
                    CheckBoxes = true
                }, "CheckBoxesTreeView"))   
        
    </div>        
                
    <br /><br />
    
    @if (ViewData["message"] != null && ViewData["message"].ToString().Length > 0) { 
        <span style="font-size:120%; font-family: Tahoma">@Html.Raw(@ViewData["message"])</span>
      } 
    
   
     <br /><br />
     
    <input type="button" 
            id="showCheckBoxesButton" 
            value="Show Checked Nodes" onclick="this.form.submit();" /> 
            
    @{ Html.EndForm(); }
     
            
    <br />
    <br />
    <div>
          
    </div>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Trirand.Web.Mvc;
using System.Web.Script.Serialization;

namespace MVCDemo.Controllers.Tree
{
    public partial class TreeController : Controller
    {
        // we will store checked nodes here to save checked state between page refreshes
        List<JQTreeNode> checkedNodes = new List<JQTreeNode>();


        // the first parameter to the Controller is passed from the JQTreeViewInstance
        // the ID is equal to the ID of the TreeView (defined in the View) 
        // plus the "_checkedState" suffix.
        // In initial state the parameter is null. In post state, it contains the 
        // JSON representation of the checked nodes on the client-side.
        public ActionResult CheckBoxes(string CheckBoxesTreeView_checkedState)
        {
            if (!String.IsNullOrEmpty(CheckBoxesTreeView_checkedState))
            {
                checkedNodes =
                    new JavaScriptSerializer().Deserialize<List<JQTreeNode>>(CheckBoxesTreeView_checkedState);

                // store in session in order to save check state
                // to be later used in the DataRequested controller
                Session["checkedNodes"] = checkedNodes;

                string message = "<b>Checked Nodes</b>: ";
                foreach (JQTreeNode node in checkedNodes)
                {
                    message += node.Text + ", ";
                }

                ViewData["message"] = message;

            }
            return View();
        }

        public JsonResult TreeView_CheckBoxes_DataRequested()
        {
            var tree = new JQTreeView();

            List<JQTreeNode> nodes = new List<JQTreeNode>();

            nodes.Add(new JQTreeNode { Text = "One" });
            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" });

            SetCheckedNodes(nodes);

            return tree.DataBind(nodes);
        }

        public void SetCheckedNodes(List<JQTreeNode> allNodes)
        {
            List<JQTreeNode> checkedNodes = Session["checkedNodes"] as List<JQTreeNode>;
            if (checkedNodes != null)
            {
                var tree = new JQTreeView();
                var allNodesFlat = tree.GetAllNodesFlat(allNodes);

                foreach (JQTreeNode node in allNodesFlat)
                {
                    var matchedCheckedNode =
                        checkedNodes.Find(checkedNode => checkedNode.Text == node.Text);
                    if (matchedCheckedNode != null)
                        node.Checked = true;
                }
            }
        }
    }
}
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" />