1
我正在使用Primefaces自動完成,並使用Hibernate從數據庫獲取記錄。Primefaces根據選擇的自動完成填充其他列值
我可以在輸入文本時從數據庫中選擇值。我想實現的是當我輸入字符時選擇一個名稱,我希望我的其他列在jsf頁面中填充。例如,當我選擇員工姓名「SMITH」時,我想要員工編號,部門填寫SMITH的員工編號和部門。
我在jsf頁面中有以下內容。
<p:autoComplete value="#{myMB.selectedEmployee}"
id="basicPojo" minQueryLength="3"
completeMethod="#{myMB.complete}" var="p"
itemLabel="#{p.empName}"
converter="#{myconverter}"
forceSelection="true" >
<h:outputLabel value="Emp Number" />
<h:outputText value="#{p.employeeNumber}" />
<h:outputLabel value="Department" />
<h:outputText value="#{p.employeeDepartment}" />
</p:autoComplete>
當我選擇一個名稱時,其他字段不會顯示。
這可能是什麼原因?我怎樣才能達到預期的效果?
任何幫助,高度讚賞。
編輯1
<p:dialog header="Create New Request" style="font-weight:bold"
widgetVar="requestNewDialog" resizable="false"
id="newDlg"
showEffect="fade" hideEffect="fade" appendToBody="true"
modal="true" position="center top" width="850" height="450">
<h:panelGrid columns="2" cellspacing="2">
<h:outputText value="New Employee No:" />
<h:outputText value="" />
</h:panelGrid>
<p:separator />
<p:panelGrid columns="6">
<h:outputLabel value="Employee # " for="emp" />
<p:autoComplete value="#
{myMB.selectedEmployee}"
id="basicPojo" minQueryLength="3"
completeMethod="#{myMB.complete}" var="p"
itemLabel="#{p.longName}"
converter="#{employeeNameConverter}"
forceSelection="true" >
<p:ajax event="itemSelect" update="num"
listener="#{myMB.handleSelect}" />
<h:outputLabel value="Name" for="name" />
<h:outputText value="#{p.employeeNumber}" />
</p:autoComplete>
<h:outputLabel id="num" value="Department" for="dept" />
<p:inputText id="dept" value="#{p.employeeNumber}" >
</p:inputText>
</p:panelGrid>
<p:separator />
</p:dialog>
ManagedBean完整方法
public List<Employee> complete(String query) {
List<Employee> suggestions;
suggestions = new ArrayList<Employee>();
try {
EmployeeQueryData q = new EmployeeQueryData();
getService().getEmployee(q,query);
employee = q.getResult();
for (Employee p : employee) {
if (p.getEmpName().toLowerCase().contains(query));
suggestions.add(p); //
}
} catch (Exception e) {
}
return suggestions;
}
我試圖爲'
\t \t \t \t \t \t p:inputText>'然而employeeNumber是空的,即爲空。 – user75ponic
不確定你想渲染什麼,但你可以用'h:panelGroup id =「someId」'包裝'h:outputLabel'和'p:inputText',並將'p:ajax'改爲'
' – DanielDaniel在另一個說'someId'的列中,我如何從bean中檢索或顯示值?你能提供一個例子嗎?感謝 – user75ponic