2016-02-10 2 views
0

Lightswitch HTMLУстановите фокус на клиенте после выполнения запроса Lightswitch HTML Client

После запроса был выполнен, мне очень интересно, как выполнить изменения на клиенте сразу после. Например, у меня есть окно поиска (текстовое поле), которое берет ввод и передает его вместе с параметризованным запросом. На клиенте я хотел бы вернуть фокус обратно в окно поиска после завершения запроса. У меня есть java-скриптовый код для установки foucs, я просто не знаю, когда и где его использовать. Мне нужно что-то вроде методов сервера _Executed и _Executing, но на клиенте. Это возможно?

ответ

1

Я не думаю, что вы узнаете, когда запрос завершится, поскольку он выполняется асинхронно и по умолчанию загружает только часть результатов. Вы пытались помещать javascript для установки фокуса в postRender элемента управления, связанного с полем поиска? Вы можете найти его в дизайнере для экрана, выбрав элемент управления и выбрав раскрывающийся список рядом с кодом записи.

Не забудьте использовать метод setTimeout, чтобы обеспечить правильную визуализацию элемента до применения javascript. Для правильного объяснения обратитесь к Why is setTimeout(fn, 0) sometimes useful?.

Я использовал следующие и внимание переключилось на кнопку:

myapp.BrowseMyEntity.MyButton_postRender = function (element, contentItem) { 
    setTimeout(function() { 
     element.focus(); 
    }, 0); 
}; 

Если вы действительно хотите, чтобы установить фокус после того, как вы намеренно назвал запрос и он завершил, использовать механизм посыла».then (...) ", например:

screen.details.dataWorkspace.ApplicationData.MyQuery().execute().then(function (result) { 
    // Do whatever you want here 
    } 
}); 
+0

Я уже знаю, как установить фокус во время рендера. Мне нужно сделать это после выполнения запроса. Я предполагаю, что другой подход заключается в том, чтобы установить фокус с сервера ... Кроме того, я не знаю, как это сделать. – HiTech

+0

Если вы находитесь на HTML-клиенте, вы не сможете установить фокус с сервера. Можете ли вы объяснить, почему вам нужно установить фокус только после того, как запрос будет выполнен? Это мешает фокусу или вызывает окно поиска для выполнения действия? – BobbyJ

+0

Проверьте ответ, я добавил дополнительную информацию о выполнении действия, когда запрос завершил выполнение. – BobbyJ

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