Prerequisites
- .NET Framework 4.0 or above
- jQuery 1.8 or above
- jQuery UI 1.9.0 or above - required for the autocomplete
Included files
- SharkDev.TreeView.css
- SharkDev.TreeView.png
- SharkDev.treeView.js
- SharkDev.MVC.dll
- SharkDev.Web.Controls.dll
Properties
- Id - unique identifier.
-
Header
- Text - text that appears in a header.
- Visible - header is visible or not.
- Expanded - first level is expanded on init.
-
ClientHandlers
- ContentSelect - JavaScript function that triggers after node is selected. Function accepts one parameter which represent JavaScript object with three fields - selected ID, text and parent ID.
- AutoCompleteHandler - the function on the server side, which is triggered on typing (min 3 charactes). Returns JSON array in a format {Id : value, Text: value, ParentId : value }. On a server side you can use Node class.
- Height - height
- Width - width
- DataOnClient - serialize data on client. If it is true, you don't need AutoCompleteHandler.
- Attributes - dictionary of custom attributes. Will be serialized on a node itself, thus you can get it in ContentSelect handler.
Example
@Html.SharkDev().TreeView(settings => { settings.Id = "treeViewContainer"; settings.Header.Text = "Tree root - Animal"; settings.Header.Visible = true; settings.Header.Expanded = true; settings.ClientHandlers.ContentSelect = "function (e) { console.log(e); }"; settings.AutoCompleteHandler = Url.Content("~/Home/GetBySample"); settings.Height = 300; settings.Width = 270; settings.DataOnClient = true; }).GetContent(ViewBag.Tree)
What is inside DLL-s
SharkDev.MVC.dll (namespace SharkDev.MVC) contains
- TreeView() - extension method that accepts TreeViewSettings
- TreeViewSettings - simple class that represents properties
- GetContent() - accepts Node collection
SharkDev.Web.Controls.dll (namespace SharkDev.Web.Controls) contains
- Node - class that represents every node
namespace SharkDev.Web.Controls.TreeView.Model { public class Node { public string Id { get; set; } public string Term { get; set; } public string ParentId { get; set; } public IDictionaryAttributes { get; set; } } }