2014-01-29 3 views
0

Я использую PrimeFaces 3.5 в своем приложении.Динамическое контекстное меню PrimeFaces 3.5 с использованием модели меню и статического контекстного меню несовместимых поверхностей

  1. Я внесла некоторые изменения в свой код, и я начал использовать динамическое контекстное меню, используя код на стороне сервера, вместо этого в статическом простом контекстном меню.

образец кода

 MenuItem menu1= new MenuItem(); 
     menu1.setValue(Label); 
     menu1.setActionExpression(expFact.createMethodExpression(elCtx, "#{classname.methodname}", Void.class, new Class[0])); 
     menu1.setOncomplete("Dialog1.show()"); 
     model.addMenuItem(menu1); 
  1. это динамическое меню работает отлично.
  2. В этом контекстном меню по незавершенному событию отображается диалоговое окно. Для этого диалога я использую другое простое контекстное меню. Раньше я мог обрабатывать контекстное меню в диалоговом окне, но поскольку я изменил динамическое контекстное меню на моей главной странице xhtml. Контекстное меню теперь не отображается в диалоговом окне.

У меня нет каких-либо исключений или ошибок в браузере, поэтому я не могу проследить причину, по которой теряется мое простое контекстное меню или что мне нужно сделать, чтобы теперь обрабатывать простое контекстное меню в диалоговом окне?

Пожалуйста, помогите мне и спасибо заранее.

ответ

0

Как правило, я использую Datatable и в datatable мне не удалось реализовать контекстное меню. Но я использовал простое решение, и моя проблема решена.

<p:contextMenu for="Tableid" id="contextid" widgetVar="contextwidgetvar"> 
    <p:menuitem value="Menu 1" oncomplete="confirmationdialog.show()" /> 
</p:contextMenu> 
<p:dataTable id="Tableid" widgetVar="Table" var="sItem" 
    value="#{classname.methodname}" rowKey="#{sItem.id}" selection="#{classname.methodname.selectedObject}"selectionMode="single" lazy="true" editable="true"> 
<p:ajax event="contextMenu" oncomplete="contextwidgetvar.show();" /> 
</p:dataTable> 

Эти простые шаги позволили решить эту проблему. Некоторое время, возможно, вам нужно будет добавить javascript, чтобы избежать получения первой строки в выбранном объекте.

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