Перезагрузить данные из DataGable на Angular 6 - PullRequest
1 голос
/ 03 мая 2019

Я разрабатываю приложение и хочу знать, как я могу перезагрузить данные из таблицы данных в моем приложении. Я использую datatable с Angular 6. Первая загрузка данных с данными корректна, но я хочу отфильтровать свои datatable с помощью пользовательского фильтра, и когда я нажимаю кнопку подтверждения, я хочу перезагрузить данные из другого метода.

this.dtOptionsLog = {
  ajax: (dataTablesParameters: any, callback) => {
    that.adminServices.loadingLogData(this.logInfo)
      .subscribe((webScriptdata) => {
          console.log('AdminComponent - log information');
          success = webScriptdata;
          this.loading = false;
          callback({
            data: [] = success.content as string[]
          });
        },
        msg => {
          console.log(msg);
        });
  },
  pagingType: 'full_numbers',
  lengthMenu: [[10, 25, 50, -1], [10, 25, 50, 'Tous']],
  responsive: true,
  language: {
    lengthMenu: 'Afficher _MENU_ enregistrements par page',
    zeroRecords: 'Aucune tâche disponible',
    info: 'Page _PAGE_ sur _PAGES_',
    infoEmpty: 'Aucun log disponible',
    infoFiltered: '(filtré(s) sur _MAX_ enregistrements)',
    paginate: {
      first:      'Premier',
      last:       'dernier',
      next:       'Suivant',
      previous:   'Precedent'
    },
    search: '_INPUT_',
    searchPlaceholder: 'Recherche',
  },
  columns: [{
    title: 'Utilisateur',
    data: 'username',
  },
    {
      title: 'Message',
      data: 'message',
    },
    {
      title: 'Date',
      data: 'datelog',
    }],
  stateSave: true,
  order: [[2, 'desc']],
  columnDefs: [
    {
      targets: [1],
      searchable: false,
      visible: true,
      render: function(data, type, full, meta) {
        console.log(full);
        return full.node !== null ? '<a class="btn btn-simple btn-info" title="Visualiser le document">' + full.message + '</a>'
          : full.message;
      }
    }
  ],
  // cette fonction permet d'afficher la fonction pour visualiser les fichiers documents à partir d'un bouton
  rowCallback: (row: Node, data: LogData, index: number) => {
    const eltedit = $('td', row).find('a.btn-info');
    if (eltedit) {
      eltedit.unbind('click');
      eltedit.bind('click', () => {
        console.log(data);
        this.openIndex(data.node);
      });
      return row;
    }
  }
};

и моя функция validSearch ():

validSearch() {
console.log('Filtre Validation');
if (this.dateFin !== undefined && this.dateFin > this.dateDebut) {
  // méthode qui permettra de filtrer les logs sur une période
} else if (this.dateFin === undefined) {
  // méthode qui permet de filtrer sur certains attributs mais ceci est géré du côté java en fonction des attributs selectionnés
  this.logInfo = {} as LogData;
  this.logInfo.username = this.selected1;
  this.logInfo.typeaction = this.selected2;
  this.logInfo.datelog = this.dateDebut.toDateString();
  console.log(this.logInfo);
  let success;
  const that = this;
  this.dtOptionsLog.sAjaxSource = {
    ajax: (dataTablesParameters: any, callback) => {
      that.adminServices.loadingLogData(this.logInfo)
        .subscribe((webScriptdata) => {
            console.log('AdminComponent - log information');
            success = webScriptdata;
            this.loading = false;
            callback({
              data: [] = success.content as string[]
            });
          },
          msg => {
            console.log(msg);
          });
    }
  };
} else {
  alert('Il faut que la date de fin soit supérieure à la date de début pour déterminer une période');
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...