2015-05-04 3 views
1

Это связано с моим вопросом: https://github.com/vitmalina/w2ui/issues/882#event-295994680w2uiGrid: Отключить удалить кнопку на строке выбора

Спасибо за ответ. Я добавил код, как вы рекомендовали, но все равно не работает. Я понял, что кнопка id кнопки удаления - w2ui-delete, посмотрев на коллекцию toolbar.items. Я уверен, что я все еще что-то пропущу, но не знаю, что.

onSelect: function(event) { 
    event.onComplete = function() { 
     if(this.records[event.index].deletable) 
     this.toolbar.enable('w2ui-delete'); 
     else { 
     this.toolbar.disable('w2ui-delete'); 
     $(this.toolbar.items).last().disabled = true; 
     } 
    } 
    } 

ответ

1

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

$(function() {  
    $('#grid').w2grid({ 
     name: 'grid', 
     show: { 
      toolbar: true, 
      footer: true 
     }, 
     toolbar: { 
      items: [ 
       { type: 'break' }, 
       { type: 'button', id: 'my-delete', caption: 'My Delete', icon: 'w2ui-icon-cross' } 
      ], 
      onClick: function() { 
       console.log('My Delete Clicked'); 
      } 
     }, 
     searches: [     
      { field: 'lname', caption: 'Last Name', type: 'text' }, 
      { field: 'fname', caption: 'First Name', type: 'text' }, 
      { field: 'email', caption: 'Email', type: 'text' }, 
     ], 
     columns: [     
      { field: 'recid', caption: 'ID', size: '50px', sortable: true, attr: 'align=center' }, 
      { field: 'lname', caption: 'Last Name', size: '30%', sortable: true }, 
      { field: 'fname', caption: 'First Name', size: '30%', sortable: true }, 
      { field: 'email', caption: 'Email', size: '40%' }, 
      { field: 'sdate', caption: 'Start Date', size: '120px' }, 
     ], 
     onSelect: function(event) { 
      event.onComplete = function() { 
       if (event.recid > 0 && event.recid < 5) { 
       this.toolbar.disable('my-delete'); 
       } else { 
       this.toolbar.enable('my-delete'); 
       } 
      } 
     }, 
     records: [ 
      { recid: 1, fname: 'Jane', lname: 'Doe', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 2, fname: 'Stuart', lname: 'Motzart', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 3, fname: 'Jin', lname: 'Franson', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 4, fname: 'Susan', lname: 'Ottie', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 5, fname: 'Kelly', lname: 'Silver', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 6, fname: 'Francis', lname: 'Gatos', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 7, fname: 'Mark', lname: 'Welldo', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 8, fname: 'Thomas', lname: 'Bahh', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 9, fname: 'Sergei', lname: 'Rachmaninov', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 20, fname: 'Jill', lname: 'Doe', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 21, fname: 'Frank', lname: 'Motzart', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 22, fname: 'Peter', lname: 'Franson', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 23, fname: 'Andrew', lname: 'Ottie', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 24, fname: 'Manny', lname: 'Silver', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 25, fname: 'Ben', lname: 'Gatos', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 26, fname: 'Doer', lname: 'Welldo', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 27, fname: 'Shashi', lname: 'Bahh', email: '[email protected]', sdate: '4/3/2012' }, 
      { recid: 28, fname: 'Av', lname: 'Rachmaninov', email: '[email protected]', sdate: '4/3/2012' } 
     ] 
    });  
}); 

При выборе любой записи ниже 5 будет отключить кнопку. Обратите внимание, что вы все равно можете вызвать метод удаления гридов, который будет продолжен с существующей функциональностью удаления. См. Метод grid.delete().

+0

Спасибо, что работает – Maher

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