我的dataTable由ajax调用填充,我的commandLink(在datataable中)没有指向正确的位置并且始终呈现相同的页面。并在控制台中显示我: HtmlLabelRend W属性'for'标签组件的id为j_id1471051656_3ffdbef6:j_id1471051656_3ffdbfc6未定义
但是当我把commandlink放在数据表之外时,action方法运行正常。
这个问题很少见!我该如何解决?
提前致谢。
我的Jsf页面:
<h:form>
<p:panel header="Busqueda">
<p:panelGrid style="width:100%;">
<p:row>
-----------------------------------(inputs)---------------------------------------
<p:column>
<p:commandButton value="Buscar" update="grilla"
action="#{devolucionAdminController.buscarSD()}">´
</p:commandButton>
</p:column>
</p:row>
</p:panelGrid>
<p:messages closable="true" redisplay="true" id="msj"></p:messages>
</p:panel>
<p:dataTable id="grilla" var="r"
value="#{devolucionAdminController.listado}"
emptyMessage="No se han encontrado solicitudes de devolución">
<p:column headerText="Sec">
<h:outputText value="#{r.idSoliDevo}" />
</p:column>
<p:column headerText="Cuenta">
<h:outputText value="#{r.cuentaId}" />
</p:column>
<p:column headerText="Ver Detalle Sol. Dev ">
<p:commandLink
action="#{bajaController.mostrarSolicitudBaja(r.cuentaId,r.idSoliDevo)}" ajax="false">
<p:commandButton icon="ui-icon-search" title="Ver Detalle" />
</p:commandLink>
</p:column>
</p:dataTable>
<!--works fine -->
<p:commandLink action="#{bajaController.mostrarSolicitudBaja(80003,340)}"
ajax="false">
<p:commandButton icon="ui-icon-search" title="Ver Detalle" />
</p:commandLink>
</h:form>
我的第一个Managed Bean:
@ManagedBean
@RequestScoped
public class DevolucionAdminController {
List<TaSoliDevo> listado;
//getters and setters
........................
public void buscarSD() {
.............................
}
我的第二个Managed Bean:
@ManagedBean
@RequestScoped
public class BajaController {
public String mostrarSolicitudBaja(long cuentaId, long solicDevId) {
.........................
return "goResult";
}}
答案 0 :(得分:1)
使用process =“@ this”并使用actionListener而不是action
<p:commandLink process="@this" actionListener="#{bajaController.mostrarSolicitudBaja(80003,340)}"></p:commandLink>
答案 1 :(得分:1)
我遇到了同样的问题,我一直在努力寻找解决方案,但对我没有任何帮助。这是我终于解决问题的方法:
ajax
属性process="@this"
这是更改后我的commandLink的样子:
<p:commandLink process="@this" action="#{projsSummaryBacking.redirectProjTasks(proj)}" >
<h:outputText value="#{proj.title}" />
</p:commandLink>
我希望这可以帮助某人。 / m \
答案 2 :(得分:0)
删除ajax =“false”标签,它为我工作
答案 3 :(得分:0)
用
替换commandLink<p:commandButton icon="ui-icon-search" title="Ver Detalle"
action="#{bajaController.mostrarSolicitudBaja(r.cuentaId,r.idSoliDevo)}" ajax="false"/>
真的不需要在命令链接中放置一个命令按钮,只是为了放置一个图标