Introduction
This is a high performance knockout datagrid. The main benefit we get out of KoGrid is the ability to define custom row and cell templates.
Using the Code
It works in all mainstream browsers. Here I am going to show a basic example of the KoGrid. Through NuGet, we can install Knockout and KoGrid in our application.
After I created a JavaScript file for the View Model:
MyGrid.js
function viewModel() {
var self = this;
self.items = ko.observableArray([{ firstName: "Eric", lastName: "Sam",
mail: "Eric@gmail.com",phno:"1212121" },
{ firstName: "Manuel", lastName: "Dan",
mail: "Manuel@gmail.com", phno: "234232" },
{ firstName: "Allen", lastName: "Ken",
mail: "Allen@gmail.com", phno: "564523" },
{ firstName: "Joe", lastName: "George",
mail: "Joe@gmail.com", phno: "46545435" },
{ firstName: "aki", lastName: "Ken",
mail: "aki@gmail.com", phno: "32267565"}]);
}
$(document).ready(function () {
ko.applyBindings(new viewModel(), document.getElementById('disp'));
});
After that, I create a bundle for KoGrid.js, Knockout.js, and MyGrid.js:
bundles.Add(new ScriptBundle("~/bundles/myBundle").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/json2.js",
"~/Scripts/knockout-2.3.0.js",
"~/Scripts/koGrid-2.1.1.js",
"~/MyJs/KOGrid.js",
"~/Scripts/jquery-ui-{version}.js"));
After that, add KoGrid.css into Style Bundle for a good look and feel for the grid.
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/site.css","~/Content/KoGrid.css"));
Here, I am adding a static array for the grid display. Here is the CSHTML code:
GridDisplay.cshtml
<div id="disp" >
<div id="grid" style="height: 200px; width:600px"
data-bind="koGrid: { data: items,afterSelectionChange: function () { return true; },
columnDefs: [{ field: 'firstName', displayName: 'First Name',width:'150'},
{ field: 'lastName', displayName: 'Last Name',width:'100' },
{ field: 'phno',displayName: 'PhNo',width:'100' },
{ field: 'mail',displayName: 'MailID',width:'205'}],
autogenerateColumns: false,
isMultiSelect: true,
showFilter: true,
showColumnMenu: false
}">
</div>
</div>
KoGrid is very configurable. Here, we will get more configuration information.
History
- 10th September, 2013: Initial post
This tip is based on this blog.