我有2个自动填充文件empname和empno如果我给empno剩余字段应该从数据库自动填充,同样到empname。但问题是当我插入新的empno剩余输入字段已被设置为null,同样到empname如何解决它。
<h:outputText value="Employee_no"/>
<h:inputText id="empp" value="#{Bean.dto.empno}" >
<p:ajax event="keyup" update="empn,des,dep,loc" listener="#{Bean.Workerno}"/>
</h:inputText>
<h:outputText value="Employee_Name"/>
<h:inputText id="empn" value="#{Bean.dto.empname}" >
<p:ajax event="keyup" update="empp,des,loc,dep" listener="#{Bean.WorkerName}"/>
</h:inputText>
<h:outputText value="Department"/>
<h:inputText id="dep" value="#{Bean.dto.de}" />
<h:outputText value="Designation"/>
<h:inputText id="des" value="#{Bean.dto.de}" />
<h:outputText value="Employee_no"/>
<h:inputText id="empp" value="#{Bean.dto.empno}" >
<p:ajax event="keyup" update="empn,des,dep,loc" listener="#{Bean.Workerno}"/>
</h:inputText>
<h:outputText value="Employee_Name"/>
<h:inputText id="empn" value="#{Bean.dto.empname}" >
<p:ajax event="keyup" update="empp,des,loc,dep" listener="#{Bean.WorkerName}"/>
</h:inputText>
<h:outputText value="D"/>
<h:inputText id="dep" value="#{Bean.dto.d}" />
<h:outputText value="Designation"/>
<h:inputText id="des" value="#{Bean.dto.de}" />
BEAN
答案 0 :(得分:3)
您的代码看起来不错......
有一件事是将ajax
事件从KeyUp
更改为blur
。
KeyUp - 强制为每个打字信件调用侦听器方法。
模糊 - 在输入内容后离开文本框时强制调用侦听器方法。
这里需要'模糊'事件,因为您需要在输入全部empno
后调用数据库。
更改事件后,确保从DB检索值
至于我的观点,当ajax监听器强制时,你的数据库值不会达到workerNo()
。
JSF代码
<h:ouputText value="empno"/>
<p:inputText id="empno" value="#{bean.empno}">
<p:ajax event="blur" listener="#{bean.ajaxEvent}" update="empname"/>
</p:inputText>
<h:ouputText value="empname"/>
<p:inputText id="empname" value="#{bean.empname}">
Bean代码
//Setters and getters of empname,empno
public void ajaxEvent()
{
if(getEmpNo()==//DB empno)
{
setEmpName("DB empname"); //Here only your updating the name field
}
}