Jsf 2 无法在Primefaces 4 p:inplace上通过widgetVar显示()
我目前正在将一个网络应用程序从Primefaces 3.5更新到4.0。我有一个复合组件,用于通过onclickJsf 2 无法在Primefaces 4 p:inplace上通过widgetVar显示(),jsf-2,primefaces,Jsf 2,Primefaces,我目前正在将一个网络应用程序从Primefaces 3.5更新到4.0。我有一个复合组件,用于通过onclickp:widgetVar('dlg').show()链接切换就地编辑。我已经将其更新到Primefaces 4.0 wayPF('dlg').show()但它不起作用 代码类似于: <p:inplace id="inplaceEdit" widgetVar="ie_#{cc.attrs.pojo.id}" editor="true" st
p:widgetVar('dlg').show()链接切换就地编辑。我已经将其更新到Primefaces 4.0 wayPF('dlg').show()代码>但它不起作用
代码类似于:
<p:inplace id="inplaceEdit" widgetVar="ie_#{cc.attrs.pojo.id}"
editor="true"
styleClass="description" emptyLabel="Enter A Description" >
<p:inputText value="#{cc.attrs.pojo.description}"
required="true" maxlength="140"
label="description" styleClass="description">
<p:ajax process="@this" listener="#{cc.attrs.bean.update(cc.attrs.pojo)}"/>
</p:inputText>
</p:inplace>
<h:panelGroup>
<div class="aap-btn-group">
<p:commandLink id="pieButton" onclick="PF('ie_#{cc.attrs.pojo.id}').show()">
<i class="icon icon-edit"></i>
</p:commandLink>
</div>
</h:panelGroup>
这会在我的页面上输出一个链接,如PF('ie_19')。show()
,但即使从浏览器控制台调用该函数,它也不会切换就地编辑。找到了我的问题的原因。我一直在使用@balusc在本文中提供的jsf修复程序:
脚本检查是否(update.getAttribute(“id”)==“javax.faces.ViewState”)
,但由于我已经更新到JSF2.2,字符串似乎不是完全“javax.faces.ViewState”。通过Chromes调试器运行它,我看到了“j_id1:javax.faces.ViewState:0”
为了解决这个问题,我将脚本的这一部分更改为:if(update.getAttribute(“id”).indexOf(“javax.faces.ViewState”)!=-1)
,如果id属性字符串包含“javax.faces.ViewState”,则返回true