在javasript中取JSF dataTable表的行值

xdw1516 2008-03-31
<h:dataTable  id="userList" binding="#{UserList.tableA}" var="currentRow" styleClass="tabListB"  cellspacing="0" cellpadding="5" >
   <h:column>
                                        <f:facet name="header">
                                            <h:outputText value="审批"/>
                                        </f:facet>
                                        <h:commandLink  value="审批"  onclick="approve()"   />
                                    </h:column>
.........................


怎么把#{currentRow.id} 传入approve()函数里面呢?

   function approve(){
                  opernUrl = "msg.jsf?&uid=" + id + "&" + Math.random();
                  window.showModalDialog(opernUrl,window,'dialogWidth:600px;resizable:none;status:none;dialogHeight:500px;')
                }
tailsherry 2008-03-31
你可以考虑用Ajax4jsf来解决这个问题,但看起来你似乎没有用到这方面的内容。

考虑下面一种方法:
<h:dataTable id="userList" binding="#{UserList.tableA}" var="currentRow" styleClass="tabListB" cellspacing="0" cellpadding="5" >
<h:column>
<f:facet name="header">
<h:outputText value="审批"/>
</f:facet>
<h:panelGroup>
<h:commandLink value="审批" onclick="approve()" />
<h:inputHidden value="#{currentRow.id}"></h:inputHidden>
</h:panelGroup>
</h:column>

同时,你的javascript可以修改为:
function approve(){
// 获取当前触发事件的<a>对象this,然后根据nextSibling获取紧跟其后的Hidden的value,也就是你要的id
var id = this.nextSibling.value;
...
...
}

希望对你有帮助!
dr.han 2008-04-10
直接传到方法中就可以的
你这样写
<h:commandLink value="审批" onclick="approve('#{currentRow.id}')" />
Global site tag (gtag.js) - Google Analytics