reload method

void reload({
  1. List<Map<String, dynamic>> data = const [],
})

Implementation

void reload({List<Map<String, dynamic>> data = const []}) {
  if (data.length > 0) {
    data.forEach((responseData) {
      if (!_responseData.contains(jsonEncode(responseData))) {
        _responseData.add(jsonEncode(responseData));
        _data.add(responseData);
      }
    });
  }

  List<Map<String, dynamic>> currentDataFiltered = _data.where((data) {
    bool matched = false;
    for (int i = 0; i < controller.columns.length; i++) {
      bool datamatched = false;
      Map<String, String> column = controller.columns[i];

      if (column['searchable'] == 'true') {
        if (data[column['name']] != null) {
          String field = data[column['name']].toString().toLowerCase().trim();
          String value = controller.searchValue.toLowerCase().trim();

          if (field.contains(value)) {
            datamatched = true;
          }
        }

        matched = datamatched;

        if (datamatched) break;
      }
    }

    return matched;
  }).toList();

  List<Map<String, dynamic>> currentData = currentDataFiltered
      .skip(controller.start)
      .take(controller.length)
      .toList();
  _response = BsDatatableResponse(
      data: currentData,
      countData: _data.length,
      countFiltered: currentDataFiltered.length);
}