2013-04-24 3 views
0

Я пытаюсь установить фокус на компонент в Icefaces 1.8.2, но он не работает, вероятно, из-за того, что компонент не отображается в момент вызова метода. Любые идеи?Фокусировка фокуса не работает

JavascriptContext.addJavascriptCall(getContext(), 
       "document.getElementById('"+ getClientId(component) + "').focus();"); 
+0

Обеспечить более подробно, пожалуйста, когда вы хотите добавить фокус? После чего? Покажите нам больше кода. –

+0

Очевидно, после завершения рендеринга. Я поместил эту строку после окончания всех вызовов сервера, но не знаю, когда Icefaces выполняет этот вызов. –

+0

Не могли бы вы попытаться вызвать это через функцию javascript из 'oncomplete' вашего действия? –

ответ

0

Это работает, я испортил его где-то раньше ..

JavascriptContext.applicationFocus(getContext(), getClientId(component)); 


public static String getClientId(UIComponent component) { 
    return component.getClientId(getContext()); 
} 

public static FacesContext getContext() { 
    return FacesContext.getCurrentInstance(); 
}