igGrid EditorProviderCheckbox edit on tab
by georgianastasov
HTML
<script src="https://igniteui.com/js/modernizr.min.js"></script>
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
<script src="https://cdn-na.infragistics.com/igniteui/latest/js/infragistics.core.js"></script>
<script src="https://cdn-na.infragistics.com/igniteui/latest/js/infragistics.lob.js"></script>
<script src="https://igniteui.com/js/apiviewer.js"></script>
<script src="https://igniteui.com/js-data/northwind"></script>
<link href="https://cdn-na.infragistics.com/igniteui/latest/css/themes/infragistics/infragistics.theme.css" rel="stylesheet"></link>
<link href="https://cdn-na.infragistics.com/igniteui/latest/css/structure/infragistics.css" rel="stylesheet"></link>
<link href="https://igniteui.com/css/apiviewer.css" rel="stylesheet" type="text/css"></link>
<table id="grid"></table>
CSS
.wrapper {
display: flex;
justify-content: center;
align-items: center;
}
.checkbox {
width: 20px !important;
height: 20px !important;
margin: 0;
padding: 0;
display:inline-block;
overflow:hidden;
text-align:center;
}
JavaScript
$(function () {
var titles = ["Sales Representative", "Sales Manager", "Inside Sales Coordinator", "Vice President, Sales"];
var countries = ["UK", "USA"];
var northwind = {
results: [
{
EmployeeID: 1,
FirstName: "Nancy",
Title: "Sales Representative",
BirthDate: "1968-12-08T00:00:00",
Country: "USA",
PostalCode: "98122",
IsActive: true
},
{
EmployeeID: 2,
FirstName: "Andrew",
Title: "Vice President, Sales",
BirthDate: "1952-02-19T00:00:00",
Country: "UK",
PostalCode: "WA1 1DP",
IsActive: false
},
{
EmployeeID: 3,
FirstName: "Janet",
Title: "Sales Manager",
BirthDate: "1963-08-30T00:00:00",
Country: "USA",
PostalCode: "94025",
IsActive: true
}
]
};
$.ig.EditorProviderCheckbox = $.ig.EditorProvider.extend({
createEditor: function (callbacks, key, editorOptions, tabIndex, format, element) {
// Create a wrapper span that contains a checkbox input
element = element || $('<span class="wrapper"><input type="checkbox" class="checkbox"/></span>');
// Call parent createEditor
this._super(callbacks, key, editorOptions, tabIndex, format, element);
// Get the actual checkbox input from the wrapper.
var $input = element.find("input");
// Attach keydown event on the input.
$input.on("keydown", $.proxy(this.keyDown, this));
...