You can create index columns in DataTable.
There are 2 types of index columns:
To create a static index column in your datatable, use the following technique:
Specifying static index column in DataTable
dtable = webix.ui({
view:"datatable",
columns:[
{ id:"index", header:"", sort:"int"},
{ id:"title", header:"Film title", sort:"string"},
{ id:"year", header:"Year", sort:"int"}
],
scheme:{
$init:function(obj){ obj.index = this.count(); }
},
...
});
Let's look more closely at the code above:
The code inside the $init key runs when data are being loaded to the component initially and when data are being reloaded for new elements. The code is called for each data item,
that's why we can use it as an iterator to assign indexes to rows.
Read more about $init.
To create a dynamic index column in your datatable, use the following technique:
Specifying dynamic index column in DataTable
dtable = webix.ui({
view:"datatable",
id:"mytable",
columns:[
{ id:"index", header:"", sort:"int"},
{ id:"title", header:"Film title", sort:"string"},
{ id:"year", header:"Year", sort:"int"}
],
on:{
"data->onStoreUpdated":function(){
this.data.each(function(obj, i){
obj.index = i+1;
});
}
},
...
});
Let's look more closely at the code above: