Я столкнулся с этим с довольно сложной таблицей. Сложность заключалась в том, что таблица могла увеличиваться / уменьшаться в зависимости от определенных переменных !! Большая боль: (
Вот как я с этим справился ..
Скорректирован system / application / config / config.php, чтобы разрешить запятую в URI:
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-,';
Настройте мой контроллер с помощью функции сортировки:
function sorter() {
//get the sort params
$sort = explode(",",$this->uri->segment(3)); //the 3rd segment is the column/order
//pass the params to the model
$data = $this->model_name->get_the_data($sort[0],$sort[1]);
$this->_show($data);
}
function _show($data) {
//all the code for displaying your table
}
Я упрощен, но вы поняли идею. Цель состоит в том, чтобы URL был таким:
/ контроллер / сортировщик / имя_столбец, SortOrder
Функция сортировки вызывает другую внутреннюю функцию для работы с логикой отображения / шаблона / представления - ее работа заключается в обработке вызова сортировки и получении соответствующих данных из модели.
Конечно, это можно сократить только до текущей функции:
function showGrid() {
$sort = $this->uri->segment(3);
if ($sort) {
//get the data sorted
} else {
//get the data the default way
}
//rest of your view logic
}
Таким образом, вам даже не нужна отдельная функция - и вы можете использовать третий сегмент для определения вашей сортировки.