Experiment for dynamic column
  querySelector('.btn').onClick.listen((_) {
    int rndColCnt = new Random().nextInt(cols.length);
    cols.shuffle();

    gw0.grid
      ..setColumns(cols.sublist(0, rndColCnt))
      ..invalidate();
  });

        
@
Panel 1, bind surface