Как автоматически сортировать SPListItems на основе поля - PullRequest
1 голос
/ 17 мая 2009

У меня есть требование, чтобы SPList сортировался по полю «Приоритет» (числовое поле, без ограничений) при добавлении или обновлении ListItem.

Сортировка должна работать так:

Original        Inserted item         Modified
   1                                      1
   2                2                     2
   3                                      3 (old 2)
                                          4 (old 3)

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

Единственное решение, которое я вижу сейчас, - это использовать обработчик событий и обновить ListItems, которые должны быть деприоритизированы, однако это может быть довольно дорогостоящей операцией в списке с сотнями элементов (если в последовательности нет пробелов).

Я пропустил очевидное решение или гораздо лучший способ масштабирования?

1012 * ТИА *

Ответы [ 2 ]

1 голос
/ 17 мая 2009

Ух, крутой. Мне не нравится идея возвращаться и делать обновления для существующих элементов из EventReceiver. Вы просите неприятностей.

Вот мое рекомендация.

Используйте 2 поля для сортировки.

1 ваше поле приорты, как оно есть у вас сегодня (поэтому кто-то говорит 1, 2, 3, 4) ... 2 поле даты создания (это встроенное поле даты и времени).

чтобы ваши результаты выглядели примерно так

1 01.01.2009
2 16.05.2009
2 5/11/2009
3 12.05.2009

0 голосов
/ 17 мая 2009

Если вы хотите, чтобы элементы сортировались в виде: Установите порядок сортировки в представлении.

Если вы хотите, чтобы элементы сортировались при использовании SharePoint API: Используйте SPQuery с элементом OrderBy. http://sharepointmagazine.net/technical/development/writing-caml-queries-for-retrieving-list-items-from-a-sharepoint-list

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