<a4j:commandlink> - 执行bean方法</a4j:commandlink>

时间:2011-05-16 15:11:37

标签: ajax jsf richfaces

我在一个表单上有两个rich:dataTable:

1] 项目清单(最后一栏包含a4j:this tutorial下的commandLink)

2] 表取决于第一个表中选择的行

第一张表的最后一栏:

<rich:column>
  <a4j:commandLink>
    <h:graphicImage value="/images/icons/edit.png" alt="edit"/>
    <a4j:param value="#{it.index}" assignTo="#{myBdeCheck.currentIndex}" />
    <f:setPropertyActionListener target="#{myBdeCheck.editedWork}" value="#{bchItem}" />
  </a4j:commandLink>
</rich:column>

CommandButton在第二个dataTable的方面:

<h:commandButton id="btnCheck" action="#{myBdeCheck.edit}" value="#{conf.buttonEdit}"/>

此时我必须按下a4j:commandLink(编辑)并在第二个表单上按下该按钮,然后显示正确的项目。但我正在使用两个按钮做一件事。

如何直接按a4j:commandLink?

在第二个数据表中显示正确的项目

(我试图将action="#{myBdeCheck.edit}"移动到commandLink,但它不起作用。)

你能帮帮我吗?

更新:编辑方法:

public void edit()
{
  session = DaoSF.getSessionFactory('R').openSession();
  try 
  {
    Criteria criteria = session.createCriteria(BDE.class);
    (some restrictions...)
    dataList = criteria.list();
  } catch {......}
}

更新:rich:dataTable:

的一部分
<rich:extendedDataTable 
  id="rich2"
  value="#{myBdeCheck.dataList}"
  var="bdeItem">

<rich:column>
  <f:facet name="header">
    <h:outputText value="PersId" />
  </f:facet>
  <h:outputText value="#{bdeItem.personalNum}"/>
</rich:column>
(.....)

1 个答案:

答案 0 :(得分:2)

来自Richfaces4组件指南:

  

a4j:commandLink只需要   函数的value属性。使用   value属性指定   链接的文字。

尝试将值属性添加到a4j:commandLink,然后在编辑方法中调试并查看是否已到达:

<a4j:commandLink value="Example Text" action="#{myBdeCheck.edit}" />

Richfaces4 Component Reference

此外 - 由于您想要使用图像提交,更容易切换到a4j:commandButton?