|
3 / 3 / 0
Регистрация: 17.04.2019
Сообщений: 108
|
|
Работа с фильтрами на сайте15.01.2022, 12:24. Показов 1484. Ответов 12
Метки нет (Все метки)
Подскажите, пожалуйста: как сделать фильтрацию средствами MVC? Просто я - новичок в этой теме и ничего не понимаю.
0
|
|
| 15.01.2022, 12:24 | |
|
Ответы с готовыми решениями:
12
Работа с фильтрами Работа с фильтрами Работа с фильтрами |
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 15.01.2022, 19:02 | |
Сообщение было отмечено AntonioBonderas как решение
Решение
1. Модель.
C использованием ORM (Dapper, Entity Framework, etc) или на "голом" ADO.NET (xxxConnection, xxxCommand, xxxDataReader). На выходе имеем классы моделей + имплементацию в виде контекста ORM либо репозитория (часто и то, и другое, т.к. контекста ORM не хватает для нужного функционала, например для динамических запросов для тех же фильтров и сортировок, получения произвольных наборов данных и т.д.). 2. Контроллер. Пишутся методы для извлечения требуемых данных с использованием параметров, получаемых из http от Клиента. Часто для обработки этих самых параметров служит специальная модель, которая также добавляется в Модель приложения. Это удобный и гибкий способ обработки условий выборок, к которым относятся и те же фильтры. 3. Представление Как правило, содержит две основные части: данные + вспомогательные элементы управления. В первым относятся таблицы, списки, "карусели" и прочие визуальные элементы для отображения содержимого БД. Это может быть, к примеру, список предлагаемых услуг, таблица сотрудников, фрагментов описания предлагаемых товаров и т.д. Ко второму - различные элементы (чекбоксы, инпуты, комбобоксы и т.д.), с помощью которых пользователь может указывать нужные ему опции. Например, выбирать производителя или характеристики товаров, структурное подразделение организации, тип и ценовой диапазон услуг и т.д. 4. Логика работы приложения. Изначально пользователю предлагается некая стартовая страничка, на которой имеется начальная информация (например, перечень всех товаров). В дополнительных элементах может быть выставлены некоторые начальные опции, например, часто приобретаемые товары, какой-то список услуг или сотрудники маркетинговой службы. Либо опции не установлены и тогда основной контент странички включает полный список информации. Пользователь управляет опциями, чекая на них, выбирая из предварительно заполненных и помещенных в разметку списков или вводя образец для поиска, например, фамилию сотрудника. После нажатия на кнопку "Выбрать" JS собирает введенные опции и кладет их в параметры http. Можно использовать кнопку Submit, по которой сбор информации о параметрах будет выполнен автоматически самим браузером. В любом случае на Web-сервер посылается get-запрос на новую выборку. Web-сервер (а точнее, метод контроллера, указанный в url), получает Http, распарсивает его и работает с найденными параметрами. В нашем случае, передает их методу репозитория, который строит по ним динамический запрос к БД с учетом полученных "фильтров". Полученный датасет передается рейзору в строго типизированное представление, из которого рейзор строит разметку, которая и отправляется Клиенту. В общем и целом схема такая. Я не описывал тут вариации, существенно влияющие на производительность и сложность кода приложения. Например, выбор технологии SPA/MPA, использование Ajax, частичные и мастер-представления и т.д. Информации по этой теме в инете больше, чем очень много.
1
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 15.01.2022, 19:15 | |
|
На картинке приложение, выполненное по технологии фильтрации
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 15.01.2022, 19:35 | |
|
В верхней части находится три каскадных комбобокса, выбор из каждого изменяет содержимое нижестоящего. Т.е. выбор континента приводит к заполнению списка стран и очистке списка городов, выбор страны переписывает список городов.
В левой части находится иерархический список классов животного мира. Клик на "книжке" приводит к раскрытию списка подклассов, клик на названии - к перечитке таблицы животных. В правой части - таблица животных. Тут находится информация БД, выбранная как с учетом класса/подкласса животных, так и с учетом города/страны/континента. Например, если выбран "Лондон" и "Акулы", то в таблице будут отображаться только акулы, "прописанные" в Лондоне. Кроме того, в верхней части таблицы есть еще поле для ввода дополнительного фильтра, который будет применен к текущей отсортированной колонке (текущая колонка, как и выбранный класс животных, выделяются цветом). Если при текущей колонке "Имя животного" набрать, к примеру "кит" и нажать кнопку с лупой, то в списке останется только две китовые акулы. А если изменить текущую колонку, например, на "Возраст", ввести в фильтр "11" и нажать "лупу", то в списке останется только одна запись с акулой Мойшей. Добавлено через 1 минуту Т.е. приложение работает с тремя уровнями фильтрации. Приложение выполнено по паттерну SPA+MVC и активно использует Ajax-технологию. Добавлено через 7 минут Есть еще и 4-й фильтр, на который "намекают" две кнопки в правой части заголовка. Смотреть животных может любой пользователь Сети, а вот вносить правки (4-й фильтр, на этот раз функциональный) (добавлять животных или вносить изменения) могут только зарегистрированные пользователи и только для своих "питомцев". Информация о владельцах животных в колонке "Владелец" таблицы (которая в данном случае не заполнена, т.к. данные берутся не из "боевой" БД.
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||
| 15.01.2022, 19:53 | ||
![]() Добавлено через 1 минуту Согласитесь, вопрос задан весьма неконкретно.
0
|
||
| 15.01.2022, 20:05 | |
|
Не по теме: а) я думал похвалиться
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 15.01.2022, 20:32 | |
|
0
|
|
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
|
||
| 16.01.2022, 11:23 | ||
![]() Не по теме: PS: Тот момент, когда понимаешь, что не трудовой стаж решает, а кол-во скиллов. :)
0
|
||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|||
| 16.01.2022, 13:13 | |||
![]() Добавлено через 2 минуты Не по теме: По поводу "писанины".
0
|
|||
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
|
||
| 16.01.2022, 15:41 | ||
|
Не по теме:
0
|
||
| 16.01.2022, 18:11 | |
|
Не по теме: Пока ТС не ответил, даже не понятно кого бы покритиковать. ;)
0
|
|
| 16.01.2022, 18:11 | |
|
Помогаю со студенческими работами здесь
13
Работа с фильтрами Работа с фильтрами в taskkill
Работа с формами и фильтрами Клиентская БД, работа с фильтрами и сортировкой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|