Использую в проекте для таблиц с сортировками и пагинацией расширение EDataTables, которое основано на одноименном плагине jQuery : www.datatables.net.
Суть расширения и отличие от Yii GridWiev то , что данные приходят через ajax; и сортировка, и пагинация, и фильтры;
В процессе реализации общей задачи необходимо было добавить в таблицу столбец с редактируемым полем. Задачку решил быстро благодаря поиску по этому форуму.
Но проблема возникла при использовании сортировки. Суть ее вот в чем : Editable при загрузке страницы формирует JS для редактируемых полей, и добавляет css редактируемым полям. Например :
Проблему разрешил похожим способом, но скорее костылем:
<?
$exp = Users::model()->findAll("roles='Exp' OR roles='Exp1' OR roles='Exp2' OR roles='Exp3'");
$nums = array();
foreach($exp as $num){
$nums[] = $num->id;
}
?>
$(document).ready(function () {
$('tbody').on('mouseover', 'tr', function(){
<? foreach($nums as $id_k=>$id_v): ?>
$('a[rel="roles_<?=$id_v ?>"]').editable({'disabled':false,'showbuttons':false,'name':'roles','title':'Выберите роль','value':null,'url':'<?= Yii::app()->createUrl('Autorized/updateProfile') ?>','type':'select','placement':'top','source':[{'value':'Exp','text':'Эксперт0'},{'value':'Exp1','text':'Эксперт1'},{'value':'Exp2','text':'Эксперт2'},{'value':'Exp3','text':'Эксперт3'}]});
<? endforeach; ?>
});
});
Так как пока это еденичное место использвания совместно этих двух расширений, меня это устроило. Все работает как хотел. Но все-равно интересует как правильно реализовать задачу ?