Каковы хорошие шаблоны пользовательского интерфейса для работы с потенциально большими матрицами данных? - PullRequest
1 голос
/ 27 ноября 2011

Я перевожу старое настольное приложение vb в версию веб-приложения ASP.NET.Приложение позволяет кому-то указывать расценки для здания, этаж за этажом, указывать, сколько из каждого предмета необходимо на каждом этаже.Существующая БД очень проста: M: N Join

+----------+    +-----------+    +----------+
| Floors   |    | FloorItems|    | Items    |
+----------+    +-----------+    +----------+
| FloorId  |--->| FloorId   |    |          |
| ...      |    | ItemId    |<---| ItemId   |
|          |    | Quantity  |    | ...      |
+----------+    +-----------+    +----------+

В существующем настольном приложении разработчики взломали эту 2D матричную сетку, чтобы позволить конечному пользователю добавлять количество всех элементов на всех этажах.на одном экране.например,

        | Item 1 | Item 2 | Item 3 | Item 4 | ....
--------+--------+--------+--------+--------+------
Floor 1 |
Floor 2 |
Floor 3 |
Floor 4 |
...     |

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

Кто-нибудь может порекомендовать какие-либо другие шаблоны пользовательского интерфейса для работы с потенциально большими матрицами входов в веб-приложении?Или укажите несколько хороших примеров в Интернете?

(я играю с идеей сделать этот один экран в Silverlight, позволяющий сетке прокручивать вправо до необходимого уровня в интерфейсе пользователя, и сохранять каждое текстовое поле в фокусе-exit)

Ответы [ 2 ]

1 голос
/ 28 ноября 2011

Если вы просто пытаетесь уменьшить список, а не поперек, почему бы не использовать древовидный элемент управления?Дисплей только опускается, и вы можете развернуть и свернуть вид, чтобы они одновременно работали только на одном этаже.Если вы хотите реализовать некоторые контрольные точки проверки / сохранения, тогда добавьте кнопки «Редактировать», «Отмена» и «Сохранить» на уровне пола, чтобы данные читались только до тех пор, пока они не нажмут «Редактировать», и вы можете выполнить проверку после сохранения.Если пользователь пытается отредактировать другой этаж, предупредите, что ему нужно сохранить или отменить текущий.

Building
|
+--Floor 1       [Edit] [Cancel] [Save]      
   |
   +-- Item 1   _Qty Entry_
   |
   +-- Item 2   _Qty Entry_
   |
   +-- Item 3   _Qty Entry_
   |
   +-- Item 4   _Qty Entry_
|
+--Floor 2    
   |
   +-- Item 1   _Qty Entry_
   |
   +-- Item 2   _Qty Entry_
   |
   +-- Item 3   _Qty Entry_
   |
   +-- Item 4   _Qty Entry_
1 голос
/ 27 ноября 2011

Во-первых, я бы попытался выяснить, открыт ли клиент для уменьшения объема данных, которые он хочет просмотреть.
При редактировании количества предметов на 4-м этаже действительно нужно просматривать товары 2-го этажа?
В качестве альтернативы - возможно, при редактировании элемента № 3, пользователь на самом деле не беспокоится о количестве элемента № 12.

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

Если вы просто должны отобразить этот огромный объем данных, существует множество элементов управления сеткой, которые могут прекрасно обрабатывать большие объемы данных.
Лично мне нравится jQuery's jqgrid . очевидно, есть еще много.

...