2013-04-03 4 views
1

Это Followup вопрос к одному ответил здесь:JQuery JTable пользовательские нажмите действия события маршрутизации

jquery jtable custom click event

вместо того, чтобы просто делать оповещение() на кнопку печати, мне нужно, чтобы направить действие обратно на сервер, похожий на listAction или DeleteAction.

1) Как настроить кнопку, чтобы отключить это настраиваемое действие? 2) Могу ли я передать значение как пример предупреждения (data.record.tableID)?

что-то вроде этого, но я только что сделал имя функции с именем jTableAjax, мне нужно знать реальную подобную JTable функцию, чтобы выстрелить в действие Ajax вызова:

  CustomAction: { 
        title: 'Refresh', 
        width: '1%', 
        sorting: false, 
        create: false, 
        edit: false, 
        list: true, 
        display: function (data) { 
         if (data.record) { 
          return '<button title="Refresh '+data.record.table+'"   class="jtable-command-button jtable-edit-command-button" onclick="jTableAjax('/myurlserverpath/myaction',' + data.record.tableID + '); return false;"><span>Refresh '+data.record.table+'</span></button>'; 
         } 
        } 
       } 

ответ

1

Я закончил с использованием JQuery, построенный в Ajax обработчик, а затем сделал перезагрузку на JTable, как показано ниже:

на JTable определение customfield я называю моей refreshTable функция:

display: function (data) { 
        if (data.record) { 
         return '<button title="Refresh'+data.record.table+'" class="jtable-command-button jtable-edit-command-button" onclick="refreshTable(data.record.table); return false;"><span>Refresh '+data.record.table+'</span></button>'; 
        } 

Я тогда обрабатывать Аякс запроса с JQuery, чтобы сделать некоторую сторону сервера харизмы, а затем, если успех, перезагрузите JTable:

function refreshTable(table) { 
    $.post("/myurlpath/refreshTable", "table="+table, 
     function(results) 
     { 
      $('#MyTableDiv').jtable('reload'); 
     } 
     , "json"); 
} 

Я оставил от Аякса обработки ошибок для читаемости коды в посте, но это ручка, что мне нужно (чтобы получить вызов на сервер с помощью настраиваемой кнопки jtable).

1

Это довольно старый, но у меня была схожая задача, поэтому я поделюсь своим решением. В общем, вы не должны ставить «onclick» в свою кнопку. Лучше дать атрибут кнопок одного и того же значения, скажем «name =» button1 »и установить идентификаторы кнопок на идентификатор записи, так что« id = »data.record.Id« ». Чем вы можете использовать событие jQuery .live http://api.jquery.com/live/, которое будет прикреплять обработчик для всех этих элементов. Вы должны закончить с чем-то подобным Id этого

$('[name="button1"]').live('click', function() { 
     var id = $(this).attr('id'); 
    }); 

HAVING подряд дает вам довольно много свободы на то, что вы можете делать дальше.

Если вам нужно работать с данными, которые в настоящее время хранятся в jTable, то вы получили через jTable POST-запрос (например, какое-то скрытое поле, не отображаемые данные и т. Д.), Вы также можете легко получить доступ к этому. Его простой, как

  var row = $('#NoteTable').jtable('getRowByKey', id).data('record'); 

альта, вы получили доступ ко всему, что вы можете пожелать, когда дело доходит до rowdata. Вы также можете получить эти данные, отправив запрос на сервер (поскольку мы получили Id), но это создает unnesescery-трафик.

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