我有一个数据表,其中一列包含特定项目的状态。状态在列中显示为 commandLink。如果从数据库中检索到的项目的状态是逗号分隔的值,例如 Status1,Status 2,我必须在同一项目的列中显示 2 个命令链接,即一个带有 Status1,另一个带有 Status 2。
<h:commandLink id="status1Link" value="#{pc_test.status1}"
onclick="showAssignKeyRvPopup(#{plist.t3Id},'#{plist.t3FileName}','#{plist.status}');return false;"
rendered="#{plist.status == 'Status1,Status2'}"
update="assignKeyRvDialog">
</h:commandLink>
以上是我用来显示 commandLink 的代码。单击时,它会显示一个弹出窗口,如果我单击 OK,我必须执行一个再次更新状态的操作。我在同一列中有 2 个 commandLink,我的问题是当我单击一个 commandLink 并执行操作时,我希望该 commandLink 的文本只更改,而不是另一个。所以,我需要传递我单击的 commandLink 的 id。请让我知道我该怎么做。
我按照您的建议尝试了-
<p:remoteCommand name="doSubmit" actionListener="#{pc_testmaps.doAssignUser}" />
<p:commandButton id="assignUser" value="Submit" onclick="doSubmit();"> </p:commandButton>
function doSubmit() {
document.getElementById('nonMCLink') = commandLinkId;
doAssignUser([{name:'commandLinkId', value:commandLinkId}]);
}
And in the bean,
public void doAssignUser() throws DelegateException {
FacesContext context = FacesContext.getCurrentInstance();
Map<String, String> map = context.getExternalContext().getRequestParameterMap();
String linkStatus = (String) map.get("commandLinkId");
System.out.println(linkStatus);
}
它似乎仍然不起作用,当我打印 linkStatus 值时,我将其设为空。请帮忙。