Компонент Picker, входящий в состав K2 smartforms - довольно мощный и удобный компонент, позволяющий осуществлять поиск и выбор (включая множественный) значений из любого источника данных, через технологию K2 SmartObjects.
Вместе с тем, была подмечена одна маленькая особенность - в режиме Resolve, данный компонент возвращает максимум 10 значений, не позволяя увеличить это значение настройками параметров. Например, при поиске фамилий в большой организации может возникнуть ситуация, когда Ивановых, Петровых или Сидоровых, больше 10 человек. И выбор не попавшего в Top10 человека станет проблематичным.
Да, во втором своем режиме (Search) этой проблемы нет, так как результаты в нем выводятся в режиме таблицы со страницами и есть специальный параметр этого контрола - PageSize, который определяет количество записей на страницу. Но, раз мы даем пользователям разные возможности по поиску данных, то и хорошо бы, чтобы и параметры обоих методов могли быть сконфигурированы. Итак, как изменить поведение метода Resolve для отображения большего количества записей...
Для этого нам понадобиться сделать следующее:
Вместе с тем, была подмечена одна маленькая особенность - в режиме Resolve, данный компонент возвращает максимум 10 значений, не позволяя увеличить это значение настройками параметров. Например, при поиске фамилий в большой организации может возникнуть ситуация, когда Ивановых, Петровых или Сидоровых, больше 10 человек. И выбор не попавшего в Top10 человека станет проблематичным.
Да, во втором своем режиме (Search) этой проблемы нет, так как результаты в нем выводятся в режиме таблицы со страницами и есть специальный параметр этого контрола - PageSize, который определяет количество записей на страницу. Но, раз мы даем пользователям разные возможности по поиску данных, то и хорошо бы, чтобы и параметры обоих методов могли быть сконфигурированы. Итак, как изменить поведение метода Resolve для отображения большего количества записей...
Для этого нам понадобиться сделать следующее:
- Загрузить с K2 Underground контрол HTML Literal и установить его (инструкция по установке доступна в скачиваемом архиве и занимает секунд 20): http://www.k2underground.com/groups/html_literal_control/default.aspx
- Поместить этот контрол на представление, где установлен Picker и задать его свойство HTML следующим образом:
<script type="text/javascript">function adjustPickerLimit(){if (!checkExists(SourceCode) || !checkExists(SourceCode.Forms) || !checkExists(SourceCode.Forms.Controls) || !checkExists(SourceCode.Forms.Controls.Web) || !checkExists(SourceCode.Forms.Controls.Web.PickerBehavior)){setTimeout(adjustPickerLimit,500);return;}SourceCode.Forms.Controls.Web.PickerBehavior.prototype.oldinit = SourceCode.Forms.Controls.Web.PickerBehavior.prototype.initializeSourceCode.Forms.Controls.Web.PickerBehavior.prototype.initialize=function(){this._resolveSearchLimit = 20;SourceCode.Forms.Controls.Web.PickerBehavior.prototype.oldinit.apply(this);}}adjustPickerLimit();</script>
- Можно изменить значение resolveSearchLimit на то, которое требуется (в примере стоит 20)
Комментариев нет:
Отправить комментарий