データテーブルがあり、列の 1 つに特定のアイテムのステータスが含まれています。ステータスは、列に commandLink として表示されます。データベースから取得したアイテムのステータスが Status1,Status 2 のようなカンマ区切り値の場合、同じアイテムの列に 2 つのコマンドリンクを表示する必要があります。1 つは Status1 で、もう 1 つは 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 つの commandLinks があります。私の質問は、1 つの 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 の値を出力すると、null として取得されます。助けてください。