110 lines
2.1 KiB
JavaScript
Executable file
110 lines
2.1 KiB
JavaScript
Executable file
function requiredFieldValidator(value) {
|
|
if (value == null || value == undefined || !value.length)
|
|
return {
|
|
valid:false,
|
|
msg:"This is a required field"
|
|
};
|
|
else
|
|
return {
|
|
valid:true,
|
|
msg:null
|
|
};
|
|
}
|
|
|
|
var grid;
|
|
var data = [];
|
|
var columns = [
|
|
{
|
|
id:"title",
|
|
name:"Title",
|
|
field:"title",
|
|
width:120,
|
|
cssClass:"cell-title",
|
|
editor:TextCellEditor,
|
|
validator:requiredFieldValidator
|
|
},
|
|
{
|
|
id:"desc",
|
|
name:"Description",
|
|
field:"description",
|
|
width:100,
|
|
editor:LongTextCellEditor
|
|
},
|
|
{
|
|
id:"duration",
|
|
name:"Duration",
|
|
field:"duration",
|
|
editor:TextCellEditor
|
|
},
|
|
{
|
|
id:"%",
|
|
name:"% Complete",
|
|
field:"percentComplete",
|
|
width:80,
|
|
resizable:false,
|
|
formatter:GraphicalPercentCompleteCellFormatter,
|
|
editor:PercentCompleteCellEditor
|
|
},
|
|
{
|
|
id:"start",
|
|
name:"Start",
|
|
field:"start",
|
|
minWidth:60,
|
|
editor:DateCellEditor
|
|
},
|
|
{
|
|
id:"finish",
|
|
name:"Finish",
|
|
field:"finish",
|
|
minWidth:60,
|
|
editor:DateCellEditor
|
|
},
|
|
{
|
|
id:"effort-driven",
|
|
name:"Effort Driven",
|
|
width:80,
|
|
minWidth:20,
|
|
maxWidth:80,
|
|
cssClass:"cell-effort-driven",
|
|
field:"effortDriven",
|
|
formatter:BoolCellFormatter,
|
|
editor:YesNoCheckboxCellEditor
|
|
}
|
|
];
|
|
var options = {
|
|
editable: true,
|
|
enableAddRow: true,
|
|
enableCellNavigation: true,
|
|
asyncEditorLoading: false,
|
|
autoEdit: false
|
|
};
|
|
|
|
$(function()
|
|
{
|
|
for (var i=0; i<500; i++) {
|
|
var d = (data[i] = {});
|
|
|
|
d["title"] = "Task " + i;
|
|
d["description"] = "This is a sample task description.\n It can be multiline";
|
|
d["duration"] = "5 days";
|
|
d["percentComplete"] = Math.round(Math.random() * 100);
|
|
d["start"] = "01/01/2009";
|
|
d["finish"] = "01/05/2009";
|
|
d["effortDriven"] = (i % 5 == 0);
|
|
}
|
|
|
|
grid = new Slick.Grid("#myGrid", data, columns, options);
|
|
|
|
//grid.registerPlugin(new Slick.CellRangeSelector());
|
|
|
|
grid.setSelectionModel(new Slick.CellSelectionModel());
|
|
|
|
grid.onAddNewRow.subscribe(function(e, args) {
|
|
var item = args.item;
|
|
var column = args.column;
|
|
grid.invalidateRow(data.length);
|
|
data.push(item);
|
|
grid.updateRowCount();
|
|
grid.render();
|
|
});
|
|
}); |