2015-05-15 1 views
2

Я использую jquery jtable для отображения таблиц из mysql db. В одной из таблиц я хочу, чтобы пользователю было разрешено вставлять только одну строку. то есть отключить кнопку add new record, когда вставлена ​​первая строка.включить/отключить кнопку «добавить новую» в jquery jtable

Возможно ли это?

я следующие структуры определены для JTable:

$('#SchoolTableContainer').jtable({ 
    title : 'Schools List', 
    paging: true, //Enable paging 
    pageSize: 10, //Set page size (default: 10) 
    sorting: true, //Enable sorting 
    defaultSorting: 'name ASC', //Set default sorting 
    actions : { 
      listAction : 'ControllerAdminSchool?action=list', 
      createAction : 'ControllerAdminSchool?action=create', 
      updateAction : 'ControllerAdminSchool?action=update', 
      deleteAction : 'ControllerAdminSchool?action=delete' 
    }, 
    fields : { 
      id : { 
       title : 'School Id', 
       key : true, 
       list : false 
      }, 
      name : { 
       title : 'Name' 
      }, 
      address : { 
       title : 'Address' 
      }, 
      email : { 
       title : 'Email' 
      }, 
      phone : { 
       title : 'Phone' 
      }, 
      website : { 
       title : 'Website' 
      }, 
      remark : { 
       title : 'remark' 
      } 
    } 
    }); 
    $('#SchoolTableContainer').jtable('load'); 

Аналогично можно включить/отключить edit & delete кнопки индивидуален для каждой строки в зависимости от некоторых условий (например, если name имеет некоторое конкретное значение говорит admin затем отключить удаление) ?

Также как добавить пользовательскую кнопку в каждой строке (например, чтобы просмотреть детали, я могу нажать на кнопку view и просмотреть все данные соответствующей строки)?

+1

Никто не может ответить на этот вопрос? –

ответ

1
  • Для динамического отключения функции «добавить новую запись» вы можете удалить кнопку, определив функцию обработки recordsLoaded события:

    recordsLoaded: function(event, data) { 
        var rowCount = data.records.length; 
        if (rowCount>=1){ 
        $('#tableContainer').find('.jtable-toolbar-item.jtable-toolbar-item-add-record').remove(); 
        } 
    } 
    

аналогичны, чтобы сохранить поведение вашего стола Вы должны реализовать такую ​​же логику для событий rowInserted и rowsRemoved.

Я знаю, что это DOM, вместо того, чтобы контролировать поведение jtable, чтобы прекратить предлагать действие, однако ответ автора hikalkan's (jtable's author) here заставляет меня думать, что это предпочтительный подход.

  • Для пользовательских кнопок в каждой строке я обычно реализую первое описанное решение here.
Смежные вопросы