2013-11-09 3 views
2

Ну, у меня есть CommandButton так:Использование обработчика с р: горячие клавиши и р: CommandButton в Primefaces

<p:commandButton value="Novo" id="commandButtonCadastrar" widgetVar="varCommandButtonNovo" oncomplete="varDialogManterEndereco.show()" actionListener="#{enderecoMB.novo}" /> 

И у меня есть горячие клавиши для имитации нажатий кнопок, как это:

<p:hotkey bind="alt+n" handler="varCommandButtonNovo.click()" /> 

Но когда я использую «alt + n» в браузере, ничего не происходит.

ответ

4

Вы можете получить доступ к jQuery-методам, например click, по атрибуту jq на большинстве компонентов Primefaces. Если вы измените код, подобный этому

<p:hotkey bind="alt+n" handler="varCommandButtonNovo.jq.click()" /> 

Он должен работать.

+1

В новых версиях Primefaces, один должен получить виджет с помощью: PF ('varCommandButtonNovo') .jq.click() – alfonx

0

Этот ответ не зависит от p: commandButton. Просто дублировать AJAX-логики в р: горячая клавиша:

<p:hotkey bind="alt+n" actionListener="#{enderecoMB.novo}" oncomplete="varDialogManterEndereco.show()" /> 
0

Вы можете сделать так:

<p:remoteCommand name="remotecommand" process="@this" 
       action="#{mbname.method()}" 
       rendered="#{.......}" 
       update=":messageForm:growl" />    
<script type="text/javascript"> 
    //For Ctrl+Shift+F1 
    $(window).keydown(function(event) { 
    if(event.ctrlKey &amp;&amp; event.shiftKey &amp;&amp; event.keyCode == 112) { 
     remotecommand(); 
     event.preventDefault(); 
    } 
</script>