2010-01-28 2 views
2

У меня есть функция SharePoint, которая программно создает 3 поиска в настраиваемом списке, по одному из каждого из трех разных списков с помощью чрезвычайно похожей разметки CAML.Почему для поиска в SharePoint необходимо дважды щелкнуть мышью, чтобы выбрать элемент?

Единственные отличия в CAML - это свойства List, ID, Name, DisplayName и StaticName, но один из этих поисковых запросов выглядит несколько иначе (имеет немного более «современную» стрелку раскрывающегося списка), чем два других, и тот же самый меню требуется, чтобы я дважды щелкнул, чтобы выбрать элемент, а не однократный щелчок, как и в случае других поисков.

Возможно, кто-либо видел это раньше и имеет представление о том, что я мог бы рассмотреть, чтобы этот поиск работал как меню с одним щелчком мыши?

ответ

3

Стиль раскрывающегося списка обычно связан с количеством элементов, хотя он также отображается как стандартный элемент выбора при просмотре в firefox.

Для любого другого типа поля было бы целесообразно создать настраиваемый элемент управления полем, но из-за кода, который ожидает, что вещи будут называться «Lookup», поля поиска практически невозможно расширить.

Лучший способ настроить конкретное поле, вероятно, с помощью javascript/jquery. Когда вы нажимаете стрелку раскрывающегося списка, вызывается ShowDropdown (в core.js). Это создает элемент выбора с параметрами, установленными из списка с разделителями каналов в атрибуте выбора текстового поля.

Добавить код на страницу так, чтобы при загрузке создавались элементы EnsureSelect и FilterChoice или аналогичные, чтобы создать элемент select. Задайте свойства в текстовом поле и выберите элементы, чтобы текстовое поле было скрыто, а элемент выбора - видимым выпадающим списком. Попросите SetCtrlFromOpt вызывать изменения, а не размытие/двойной щелчок, чтобы элемент управления, который сервер читал и сохранял, был соответствующим образом обновлен.

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

+0

Это звучит как много работы на ногах, чтобы решить эту проблему, но до сих пор это лучший ответ, который у меня есть. Благодаря! – antik

0

У меня точно такая же проблема. Одно из отличий, которое я заметил, это то, что один список, требующий двойного щелчка, является полем поиска, тогда как тот, который не является полем выбора с предварительно заполненными вариантами. Не знаю, помогает ли это.

+0

Все поля, о которых идет речь в моем списке, являются полями поиска. Каждый ищет один экземпляр списка, но каждый список имеет тот же тип списка. Каждый поиск показывает столбец в исходном списке. – antik

1

Сколько элементов имеет исходный список каждого поля поиска?

В полях поиска отображается «Комбо», когда в списке источников 10 элементов (я не уверен, что 10 элементов являются точным лимитом). Когда в списке источников больше 10 элементов, в поле поиска отображается элемент управления ListArea, который работает, как вы сказали.

+0

Я задавался вопросом, связано ли какое-то количество элементов с этим: в рассматриваемом списке больше записей, чем у других (у него, вероятно, 20 или около того). Теперь, моя проблема в том, что я хочу, чтобы поведение исчезло. Можно ли это изменить? – antik

+0

Насколько я знаю, вы не можете. – jaloplo

Смежные вопросы