2015-02-18 2 views
0

В приведенном ниже коде есть событие щелчка в строке таблицы. Когда вы нажимаете на строку, она использует значение id из первого столбца и выполняет вызов для отдыха, а также создает новую таблицу с третьей стороной (myDataGrid), которую использует моя компания (и я должен ее использовать). Насколько здесь он работает хорошо. Нет проблем.Как перезагрузить функцию javascript, которая создает таблицу

Но когда я нажимаю строку, она загружает вторую таблицу. И когда я нажимаю другую строку, она не перезагружается. Он только очищает элемент таблицы из-за этой строки:

$('#Table_1_wrapper').html(""); 

Но он не создает таблицу снова. Как я могу заставить функцию «myDataGrid» загружать данные динамически?

$scope.tableClick = function(event) { 
    var tr = $('#Table_0_wrapper').find('tr'); 
    var id = $(event.target).parent().find("td:first").text(); 
    makeProxyCall("http://localhost:9090/service/getRowsWithId/"+id, function(data) { 

     var dataArray = new Array([]); 

     for(i=0;i<data.length;i++) { 
      dataArray[i] = [data[i].id, data[i].otherId, data[i].ip, data[i].serialNumber, data[i].name, data[i].otherName]; 
     } 

     $('#Table_1_wrapper').html(""); 

     $('table[data-table-name="dt-newRows"]').myDataGrid({ 
      'aoColumns': [ 
      { 'sTitle': 'ID', 'sClass': 'essential' }, 
      { 'sTitle': 'Other ID', 'sClass': 'essential' }, 
      { 'sTitle': 'IP', 'sClass': 'essential' }, 
      { 'sTitle': 'Serial Number', 'sClass': 'essential' }, 
      { 'sTitle': 'Name', 'sClass': 'essential' }, 
      { 'sTitle': 'Other Name', 'sClass': 'essential' } 
      ], 
      'aaData': dataArray, 
      'isResponsive': true 
     }); 

    }); 
} 

makeProxyCall Функция:

window.makeProxyCall = function(url, handle) { 

    return $.ajax({ 
     type : 'GET', 
     url : "/api/v2/proxy", 
     dataType : "json", 
     headers : { 
      "Service-End-Point" : url 
     }, 
     contentType : "application/json", 
     success : function(data) { 
     handle(data); 
     }, 
     error : function(error) { 
     } 
    ); 
}; 

HTML:

<table ng-click="firstTableClick($event)" cellpadding="0" cellspacing="0" border="0" class="table table-bordered" data-table-name="dt-oldrows"></table> 

<table ng-click="tableClick($event)" cellpadding="0" cellspacing="0" border="0" class="table table-bordered" data-table-name="dt-newrows"></table> 

Примечание: Когда я отладки при нажатии различных строк, makeProxyCall() всегда получает истинные ценности.

+0

Можете добавить свой HTML. Также, кто вызывает $ scope.tableClick – Sandeeproop

+0

@Sandeeproop добавлен HTML – brainmassage

ответ

1

Большинство плагинов jquery table имеют встроенный метод перезагрузки. Поскольку большинство этих сеток не только используют разметку html на странице, они также используют некоторые переменные и значения для хранения текущего состояния таблицы.

Если сетка «myDataGrid» не имеет такого метода перезагрузки, найдите специальный метод уничтожения. Обычно это выгружает все удерживаемые ресурсы сетки.

Не зная плагина, я не могу дать вам дальнейшие советы.

+0

Существует функция reloadAjax(). Я попытаюсь использовать его, спасибо. – brainmassage

Смежные вопросы