У меня возникла проблема с модальным диалоговым окном в Primefaces6.0. У меня простой формат данных с несколькими режимами выбора. Datatable также имеет входной текстовый компонент и событие rowselect, диалоговое окно заполняет отображение дополнительной информации относительно строки. Проблема здесь в том, когда я сначала нажимаю на строку данных, появляется диалоговое окно (вот как оно должно работать). Теперь закройте диалоговое окно и начните вводить текст в соответствующем текстовом компоненте и нажмите пробел, появится диалоговое окно (это настоящая ошибка). Эта проблема существует только в Primefaces6.0, и тот же код отлично работает в версии Primefaces5.3. Поскольку отзывчивость/изменение размеров данных и других компонентов возможно в Primefaces6.0, я должен придерживаться этого и не могу пойти с другим. Пожалуйста, помогите мне в решении моей проблемы.Диалоговое окно показывает, когда пробел попадает в datatable of Primefaces6.0,
образцыкод ниже: -
index.xhtml
<p:dataTable id="dtEmployee" value="#{mbEmployee.lstEmployee}" var="emp" selection="#{mbEmployee.lstSelectedEmp}" rowKey="#{emp.regNo}">
<p:ajax event="rowSelect" update=":frmEmployee:diShow" oncomplete="PF('dgInfo').show();"/>
<p:column headerText="Employee No">
<h:outputText id="lblReNo" value="#{emp.regNo}"/>
</p:column>
<p:column headerText="Employee Name">
<h:outputText id="lblEmpName" value="#{emp.employeeName}"/>
</p:column>
<p:column headerText="Employee City">
<h:outputText id="lblCity" value="#{emp.city}"/>
</p:column>
<p:column headerText="Feedback">
<p:inputText id="txtFeedback" value="#{mbEmployee.feedback}"/>
</p:column>
<p:column headerText="Select" selectionMode="multiple" style="text-align: center"/>
</p:dataTable>
<p:dialog id="diShow" modal="true" widgetVar="dgInfo" closable="true">
<p:panelGrid columns="2">
<p:outputLabel id="DispRegNo" value="Reg No"/>
<p:outputLabel id="lblDispRegNo" value="#{mbEmployee.lstSelectedEmp[0].regNo} "/>
<p:outputLabel id="DispName" value="Employee Name"/>
<p:outputLabel id="lblDispName" value="#{mbEmployee.lstSelectedEmp[0].employeeName}"/>
<p:outputLabel id="DispCity" value="City"/>
<p:outputLabel id="lblDispCity" value="#{mbEmployee.lstSelectedEmp[0].city}"/>
</p:panelGrid>
</p:dialog>
Java класс:
@ManagedBean(name = "mbEmployee", eager = true)
public class employee {
private List<employeeBean> lstEmployee;
private List<employeeBean> lstSelectedEmp;
private String feedback;
public String getFeedback() {
return feedback;
}
public void setFeedback(String feedback) {
this.feedback = feedback;
}
public List<employeeBean> getLstEmployee() {
return lstEmployee;
}
public void setLstEmployee(List<employeeBean> lstEmployee) {
this.lstEmployee = lstEmployee;
}
public List<employeeBean> getLstSelectedEmp() {
return lstSelectedEmp;
}
public void setLstSelectedEmp(List<employeeBean> lstSelectedEmp) {
this.lstSelectedEmp = lstSelectedEmp;
}
public employee() {
lstEmployee = new ArrayList<>();
lstEmployee.add(new employeeBean("ABC", "XYZ", 45, 1001));
lstEmployee.add(new employeeBean("DEF", "XYZ", 45, 1002));
lstEmployee.add(new employeeBean("GHI", "XYZ", 45, 1003));
lstEmployee.add(new employeeBean("JKL", "XYZ", 45, 1004));
lstEmployee.add(new employeeBean("MNO", "XYZ", 45, 1005));
}
}
боб класс:
public class employeeBean {
private String employeeName, city, feedback;
private int age, regNo;
public String getEmployeeName() {
return employeeName;
}
public void setEmployeeName(String employeeName) {
this.employeeName = employeeName;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getFeedback() {
return feedback;
}
public void setFeedback(String feedback) {
this.feedback = feedback;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getRegNo() {
return regNo;
}
public void setRegNo(int regNo) {
this.regNo = regNo;
}
public employeeBean(String employeeName, String city, String feedback, int age, int regNo) {
this.employeeName = employeeName;
this.city = city;
this.feedback = feedback;
this.age = age;
this.regNo = regNo;
}
public employeeBean(String employeeName, String city, int age, int regNo) {
this.employeeName = employeeName;
this.city = city;
this.age = age;
this.regNo = regNo;
}
}
Пожалуйста, дайте мне знать, если таковые имеются в коде существует ошибка или любой взлом для решения этой проблемы.
Где вы прочитали, это может открыть вопрос? Хотите добавить ссылку на нее? – Kukeltje
Большое спасибо @Gonza. Это помогло решить мою проблему. – Antoniomonteno