Показать более 15 строк в окне выбора деталей
Как задокументировано здесь относительно выбора деталей HTML5 Lightswitch:
Строка поиска в поле автозаполнения требует не менее 3 символов для запуска операции поиска, и первые 15 результатов отображаются на панели результатов. Если пользователь желает увидеть все записи в сущности (в нашем случае это Клиент), он может сделать это, нажав на кнопку "+", которая вызовет диалоговое окно выбора модальной детали.
Есть ли способ изменить ограничение 15 результатов на другое число?
1 ответ
Хотя предел 15 результатов жестко запрограммирован в библиотеке LightSwitch, поскольку Microsoft предоставляет исходный код для этой библиотеки, его можно легко пересмотреть.
Хотя этот тип модификации библиотеки Microsoft LightSwitch не является редкостью для многих более продвинутых разработчиков LightSwitch, если вы решите реализовать это, вам нужно будет тщательно протестировать изменения на наличие любых побочных эффектов. Кроме того, если вы обновите свою версию LightSwitch, вам нужно будет повторить модификацию библиотеки в новой версии.
Если вы хотите внести это изменение, вам нужно сослаться на неминифицированную версию библиотеки LightSwitch, внеся следующее изменение в файл default.htm вашего HTML-клиента (чтобы удалить.min из конца библиотеки. ссылка на скрипт):
<!--<script type="text/javascript" src="Scripts/msls-?.?.?.min.js"></script>-->
<script type="text/javascript" src="Scripts/msls-?.?.?.js"></script>
Знаки вопроса в строке выше относятся к используемой вами версии LightSwitch.
Затем вам нужно найти и изменить жестко запрограммированную ссылку в файле Scripts/msls-?.?.?. Js следующим образом:
if (applySearchFilter) {
search = me.search;
//itemLimit = 15;
itemLimit = 30;
}
В качестве альтернативы, если вы хотите внести элемент гибкости в это усовершенствование, вместо этого вы можете сделать следующую версию файла Scripts/msls-?.?.?. Js:
//if (visualCollection._loader._itemLimit !== itemLimit) {
// visualCollection._loader._itemLimit = itemLimit;
//}
if (!visualCollection._loader._itemLimit) {
visualCollection._loader._itemLimit = itemLimit;
}
Затем в каждом конкретном случае вы могли бы реализовать следующий оператор в подпрограмме PostRender вашего DetailsPicker:
myapp.AddEditScreen.DetailsPicker_postRender = function (element, contentItem) {
// Write code here.
contentItem.choicesSource._loader._itemLimit = 30;
};