2016-12-05 5 views
2

Я хочу отключить datatable row. В таком случае я вижу два обязательных этапа:Как ограничить выбор в строке данных?

  • набор CSS
  • предотвращения выбора

Я успешно сделал первый шаг с соответствующими методами Webix:

function disableRow(table, row){ 
    table.addRowCss(row, "disabled-row") 
}; 

webix.ui({ 
    view:"datatable", 
    id:"mytest", 
    ... 
}); 

disableRow($$("mytest"), 2) 

http://webix.com/snippet/e47b4257

Но как я могу ограничить выбор этой строки? Спасибо

ответ

1

Я нашел ответ, который вы ищете here

Там нет disabled свойства для строк, но вы могут использовать события onBeforeSelect и onBeforeEditStart для предотвращения связанных действий в конкретной строке:

Ссылка на this фрагмент на указанной странице, которая делает то, что вы ищете.

webix.ui({ 
    view:"datatable", autoConfig:true, editable:true, data:grid_data, 
     on:{ 
      onBeforeEditStart:function(id){ 
       if (id.row == 2) return false 
      }, 
      onBeforeSelect:function(id){ 
       if (id.row == 2) return false 
      } 
     } 
}); 
+0

Вау, спасибо! –

+0

Пожалуйста, добавьте тело своего ответа на этот пост, это не помогает, если связанные страницы перемещаются или спускаются. Пожалуйста, ознакомьтесь с FAQ по этой теме. –

0

Использования !important для переопределения таблицы стилей:

<style> 
.disabled-row { 
    background-color: #ddd !important; 
    color: #aaa !important; 
} 
</style> 

http://webix.com/snippet/1a3569c6

+0

Yep, но даже теперь строка еще может быть выбран программно: http://webix.com/snippet/21a310f5 –

1

Похоже, что не существует встроенного способа отключения строки. Я столкнулся с this фрагментом, который может помочь

Я попытался программно выбрать строку после этого, и это не позволит вам.

webix.ui({ 
    view:"datatable", id:"abc",autoConfig:true, editable:true, data:grid_data, 
    on:{ 
    onBeforeEditStart:function(id){ 
     if (id.row == 2) return false 
    }, 
    onBeforeSelect:function(id){ 
    if (id.row == 2) return false 
    } 
    } 
}); 

$$("abc").select(2); 
alert($$("abc").getSelectedId()) 
$$("abc").select(3); 
alert($$("abc").getSelectedId()) 
0

Чтобы отключить любую функцию, представленную webix, вы можете изменить свои события и обрабатывать тот же: хотел остановить выбор на какой-либо конкретной колонке, строке или ячейке можно переопределить onBeforeSelect и вернуться ложным для этой конкретной строки/колонки/клетка.

Есть события для всего onBeforeSelect,onAfterSelect,onBeforeEditStop, onAfterEditStop и т.д. т.е.

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

  • Нет связанных вопросов^_^