You can do something like:
fucntion setRowNumbers(){
let rows = $w('#table1').rows;
rows = rows.map((e,i) => {e.indexField = (i + 1).toString(); return e;});
$w('#table1').rows = rows;
}
$w.onReady(() => {
$w('#dataset1').onReady(() => {
//set the column:
let columns = $w('#table1').columns;
columns.unshift(
{
"id": "index",
"dataPath": "indexField",
"label": "Number",
"width": 100,
"visible": true,
"type": "string",
}
);
$w('#table1').columns = columns;
setRowNumbers();
})
///in an event handler when you run your filter:
$w('#dataset1').setFilter(/*filter here*/)
.then(() => setRowNumbers());
//end of event handler
})
[UPDATED]