Флажок datatables для переключения предложения WHERE - PullRequest
1 голос
/ 11 октября 2011

Хорошо, поэтому я в настоящее время заполняю свои данные просто холодным синтезом, и все отлично.Один из столбцов в моем SQL - это статус.В настоящее время я возвращаю все результаты, ГДЕ состояние! = 'Завершено'

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

Вопрос в том, могу ли я сделать какой-нибудь обратный вызов для флажка, чтобы динамически пропустить предложение where, или я доставляю ВСЕ записи в таблицы данных и фильтрую их там?Меня беспокоит только то, что когда база данных становится большой, возврат всех записей может занять некоторое время и 90% времени они будут отфильтрованы.

В любом случае фрагменты кода будут очень полезны!

Спасибо

Ответы [ 2 ]

1 голос
/ 21 октября 2011

ПОСТАНОВИЛИ

iKnowKungFoo был прав. Поскольку я использую нумерацию страниц в datatables, запрос в любом случае ограничивается этими строками, что устраняет беспокойство по поводу большого возвращаемого результата. Я реализовал следующий код для установки кнопки переключения jqueryui.

JS

$('#completed_button').bind('change', function(){
   if($(this).is(':checked')){
      $(this).button('option', 'label', 'Hide Completed');
      oTable.fnFilter('Completed',6,false);
   } else {
      $(this).button('option', 'label', 'Show Completed');
      oTable.fnFilter('',6,false);
   }
});

HTML

<input class="toggle-button" id="completed_button" type="checkbox"  /><label for="completed_button">Show Completed</label>

SQL

WHERE 1 =1 
<cfif trim(url.sSearch_6) NEQ "Completed">
   AND TS.tickets_status_id != <cfqueryparam cfsqltype="cf_sql_integer" value="13" />
</cfif>
0 голосов
/ 11 октября 2011

Я бы сказал, что подход зависит от количества данных, которые вы ожидаете.Если флажок будет фильтровать или включать небольшое количество записей, включите их в возвращаемые данные и отфильтруйте их на стороне клиента.Если этот флажок окажет большое влияние на набор результатов, лучше подойдет повторный запуск вызова данных при изменении флажка и фильтрации на сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...