This is english version for this post

Why do we need new search panel for jqGrid?



jqGrid has 4 tools for a searching:

  1. The search option for grid footer. You will have icon in footer grid. Then you click this icon, the search dialog will be displayed. Limitations! It has just one field for search. This field is input (text). There is common set of operators.
  2. The following construction
          jQuery("#mysearch").filterGrid("#grid_id",{...})

    It make search bar in mysearch place. Limitations! Panel has static set of controls. User can not add or remove controls from panel. Each condition go to server in separate post-parameters. It is bad for server-side code. Json will be better.

  3. The multipleSearch option for grid footer. It is just like point 1, but here user can add or remove any conditions in dialog. Limitations! All fields are input (text). There is common set of operators for each field.
  4. The search toolbar.
          jQuery("#toolbar").jqGrid('filterToolbar', {stringResult: true});

    Limitations! All fields are input (text). All conditions use logic operator “equal”.

As you see, all search tools have limitations. I made new search tool - smartSearchPanel. It has not such limitations. Далее… »

Tags: ,

Почему возникла необходимость в рассматриваемом компоненте?



Для jqgrid существует 4 вcтроенных механизма фильтрации данных

  1. Опция search:true в параметрах футера грида. Выражается в появлении иконки в футере, по нажатию на которую появляется диалог поиска по одному полю. Минусы в том, что поле только одно, используется текстовое поле для задание искомой величины и набор операторов универсален (общий) для всех полей.
  2. Конструкция
    jQuery("#mysearch").filterGrid("#grid_id",{...})

    Она создает на странице в месте элемента “#mysearch” поисковую панель. Набор полей в панели и элементов управления для них статичен и определяется по colModel или по специальной опции filterModel. Минус в статичности панели (пользователь не может менять набор полей) и в том, что поисковые условия посылаются в отдельных post-параметрах, а не в json-массиве. Это плохо ложится на концепцию универсального источника данных (server-side) для грида. Так же используется только один оператор сравниения для всех условий (равно).

  3. Опция multipleSearch:true футера грида. В футере появляется кнопка поиска, по нажатию на которую появляется диалог. В этом диалоге можно добавлять поисковые условия и объединять их всех условием OR или условием AND. Минус данной возможности в том, что как элемент управления для задания значений поиска используется только текстовое поле. Операторы сравления тоже всегда одинаковые.
  4. Поисковый toolbar.
    jQuery("#toolbar").jqGrid('filterToolbar', {stringResult: true});

    Его минус в использовании тестовых полей и постоянного оператора справления (равно). Все условия объединяются одним только общим (AND).

Как мы видим все 4 механизма поиска имеют ряд недостатков. Эти недостатки и призван решить новый компонент smartSearchPanel.
Далее… »

Tags: ,

Современные web-сайты уже давно дышат в спину настольным приложениям и сделать страницу на уровне GUI настольного приложения считается обычным делом. Когда мы разрабатываем очередной сервис, то сделать вкладки вместо отдельных страниц и ajax-окна вместо popup-окон у нас уже получается незадумываясь. Но интерфейсы web-страниц становятся все сложнее и сложнее и требуют от нас идти в ногу со временем. Одной из задач, где требуется отобразить сложный элемент интерфейса является визуализация данных. Далеко ходить не надо. Посещаемость вашего сайта системы статистики уже давно представляют в виде графика, где по вертикальной оси колличество посетителей, а по горизонтальной время.

Однако не смотря на то, что время требует создавать страницы аля-Desktop, ни в html ни в js нет готовых средств для отображения графиков. Написание такого компанента самостоятельно может отнять массу времени. Почему бы не использовать код, который уже написал кто-то до нас? Давайте посмотрим что я нашел на тему графиков и диаграмм на web-страницах в плагинах jquery.

Далее… »

Tags: ,

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

Если мы говорим о web, и о современном графическом интерфейсе пользователя на web-страницах (а для чего же еще JavaScript?), то здесь сплошь и рядом возникают ситуации, в которых, при наступлении некоторого события в одном компоненте интерфейса, должны обязательно выполниться некоторые действия в другом. И если это именно компоненты, которые выделены как отдельные сущности (объекты), то изящным решением для реализации реакции на наступление события в другом компоненте может оказаться Custom Events, которые реализованы в jQuery. Далее… »

Tags:

jQuery - прекрасный инструмент. В нем решены многие задачи, с которыми web-программист сталкивается изо дня в день. Долгое время одним из недостатков jQuery его приверженцами называлось отсутствие правильного объектно-ориентированного подхода. Если разработчику нужно было создать собственный класс, то это приходилось делать стандартными средствами JS. И выглядело это весьма причудливо. Чтобы описать собственный класс приходилось использовать следующую конструкцию. Далее… »

Tags: