Дизайн пользовательского интерфейса, в случае многочисленных ситуаций - PullRequest
0 голосов
/ 07 июня 2010

Я создаю веб-форму, где есть около 12-15 полей ввода ...

Вы можете взглянуть на экран здесь http://img9.imageshack.us/img9/2951/image001um.jpg и здесь http://www.freeimagehosting.net/uploads/f9f4491598.jpg

Запрос таков, что в зависимости от данных, которые пользователь выбирает в Gridview и списке DropDown, должны отображаться соответствующие текстовые поля и флажки.

Иногда условия являются очень прямыми, например, когда значение DDL равно «ABC», пользователь получает только оплаченную сумму.

Иногда они такие сложные, как ... ЕСЛИ DDL - "DEF", а значение Selected GPMS находится в диапазоне 1000-2000, рассчитайте значения разрешенных, оплаченных и т. Д. (Используя некоторую формулу), и фокус должен быть направлен на страницу №. Поле, оставляя остальные поля открытыми, если пользователь хочет их изменить ... Примерно 10-15 таких условий.

Поскольку это было сделано с помощью agile, условия добавлялись как и когда, и когда это было необходимо (DDL при изменении события, GridView при выборе события изменения и т. Д. И т. Д.). После завершения теперь я вижу код стал большим чаком, неуправляемо растет ...

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

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. В настоящее время я разрабатываю это приложение на C # .Net WindowsForms

Редактировать: В настоящее время есть только три элемента (Datagrid, DDL, OverrideAmt CheckBox), которые изменяют поведение других полей ...

Почти все условия окажутся между двумя упомянутыми мною ситуациями ... В основном они относятся к «Включению / отключению» .. «Установке значений» ... и «Смена фокуса» или любая их комбинация.

1 Ответ

0 голосов
/ 08 июня 2010

Минимальные накладные расходы


Напишите одну процедуру , которая содержит всю логику оценки.
т.е. оценивать все отдельные состояния и показывать / скрывать соответствующие элементы управления изнутри процедуры.

Теперь вызывайте эту процедуру всякий раз, когда происходит какое-либо событие изменения
это требует от вас переоценки, показывать ли / скрывать какие-либо элементы управления.

НЕ показывать / скрывать какие-либо элементы управления вне этой процедуры.

Любые дополнительные проверочные проверки в будущем всегда можно легко включить
добавив дополнительные проверки внутри этой процедуры.

Чтобы улучшить выполнение этой процедуры:
[1] Добавьте параметр (int / string) в процедуру.
[2] Передавайте другое значение в этом параметре при вызове из разных событий разных объектов.
[3] В процедуре, исходя из значения параметра, вы можете определить, какой объект (и какое событие) вызвал эту переоценку.

Таким образом, Вы можете оценить только те условия, которые могут зависеть от этого конкретного изменения в этом конкретном объекте. Таким образом, затраты на переоценку сводятся к минимуму.

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