我有一个丰富的模态面板。在里面,我有一个丰富的:选项列表。我在同一个面板中有一个Save按钮。当我单击“保存”按钮时,我想将所选的id作为参数发送到按钮的onclick属性中。 (我使用的是:commandLink for button)。但无论如何我无法发送参数。当我在javascript方法中使用alert检查它时,它将变为null。
我的富人:选项列表代码是
<h:panelGroup id="distTypesPanel">
<div class="form-row fl" style="height: 180px; width: 400px;">
<label for="dist_type">Distribution Type:<span
class="required">*</span> <h:message for="distTypesList"
errorClass="error" />
</label>
<rich:pickList id="distTypesList" copyAllControlLabel=" "
copyControlLabel=" " removeControlLabel=" "
removeAllControlLabel=" " value="#{asset.selectedDistTypes}"
converter="javax.faces.Integer">
<f:selectItems
value="#{lookupManager.setUpDMRLkpDistTypeMap()}" />
</rich:pickList>
</div>
</h:panelGroup>
保存按钮代码为:
<a:commandLink styleClass="btn green-btn save-btn fr" onclick="updateLOB(#{asset.selectedDistTypes})" reRender="updateLOBPanel"
oncomplete="Richfaces.hideModalPanel('updateLOBPanel');document.getElementById('lobMasterCheckBox').checked=false;"
ajaxSingle="true" style="margin: 10px; align:right;" >
<span> Save </span>
</a:commandLink>
Javascript方法是:
function updateLOB(selectedDistTypes){
alert(selectedDistTypes);
var idList = jQuery("#assetSearchResults").jqGrid('getDataIDs');
var idListToUpdateLOB = idList.join(",");
if(idListToUpdateLOB.length >0){
updateLOBOfAssets(idListToUpdateLOB);
}
}
Js FUnction:
<a:jsFunction name="updateLOBOfAssets" oncomplete="gridReload();"
action="#{assetManager.updateLOB()}" ajaxSingle="true">
<a:actionparam name="param1" assignTo="#{assetManager.idList}" />
</a:jsFunction>
selectedDistTypes将显示为null。你能帮我正确发送参数吗?
答案 0 :(得分:2)
当呈现页面时,所有EL表达式都被解析。这意味着您的commandButton设置为onclick="updateLOB([])"
,因为在呈现按钮时列表为空。
有几种方法可以执行您想要执行的操作,但我不知道您在updateLOBOfAssets
函数中使用ID做了什么。最简单的方法是从bean中检索ID,而不是用JavaScript传递它们。
答案 1 :(得分:0)
这有帮助吗?
onclick="updateLOB('#{asset.selectedDistTypes}')"
看起来不像你引用的值。