我正在使用primefaces开发一个项目。
代码:
<p:panel id="accountPolicyRichPanel">
<h:panelGrid id="outputPanelGrid">
<h:outputText value=""...../>
<p:inputText id="InputTextId"/>
<p:selectOneMenu id="suspendTypeId" value="...">
<f:selectItems value="#{AccountPolicy.suspendTypeItemList}"/>
<p:ajax listener="#AccountPolicy.suspendTypeComboboxAction}"event="change" update="outputPanelGrid"/>
</p:selectOneMenu>
</panelGrid>
<p:commandButton id="saveButtonId" value="..." action="..."
update="accountPolicyRichPanel" />
</p:panel>
我的问题是当我选择<p:selectOneMenu>
时,<h:panelGrid id="outputPanelGrid">
我在<p:inputText id="InputTextId"/>
中删除了之前输入的值。{/ p>
如何更新<h:panelGrid id="outputPanelGrid">
或<p:panel>
而不删除p:inputText
中之前输入的值。
答案 0 :(得分:0)
您必须从更新中排除with open('/home/cam/Documents/1.txt','rb') as f:
f_out=open('mytxt','w+')
lines=f.readlines()
new_lines=[line.strip() if line == '\n' else line for line in lines]
#print new_lines
space_index=[i for i, x in enumerate(new_lines) if x == ""]
new_list=[0]+space_index
for i in range(len(new_list)):
try:
mylist=new_lines[new_list[i]:new_list[i+1]]
except IndexError, e:
mylist=new_lines[new_list[i]:]
mylist=mylist[1:]
mylist1=[i.strip() for i in mylist]
mylist1[2] = " ".join(mylist1[2:])
final=mylist1[:3]
finallines=[i+"\n" for i in final]
print finallines
for i in finallines:
f_out.write(i)
或将此输入添加到执行中,因为Ajax默认只处理当前组件,如execute =&#34; @ this&#34;。
e.g。执行:
<p:inputText id="InputTextId"/>
答案 1 :(得分:0)
你至少应该在inputText上放一个value="#{bean.someField}"
。如果不存在,您输入的值将在ajax提交和更新过程中丢失,因为它无法存储在服务器上。
这是所有基本的jsf而不是PF相关。
您可能能够优化表单提交(提交的字段和不提交的字段,处理的字段和不处理的字段),但这是:不同的东西
另见