我试图让一个图像来回交换,如果在extenedDataTable中选择了一行。我能够以非活动状态显示图像,但无法弄清楚如何切换它。这是表定义代码:
<rich:extendedDataTable style="width: 800px; height: 150px;"
rowClasses="Row0,Row1" value="#{myBean.exceptions}" var="exception"
selectionMode="single" id="Table" selection="#{myBean.exceptionSelection}">
<a4j:ajax event="selectionchange" listener="#{myBean.rowListener}" render=""/>
这是我要切换其图像的列。我们的想法是在同一目录中更改为名为filledRadioButton的图像:
<rich:column id="selected_col" label="Selection">
<f:facet name="header">
<a4j:commandLink value="Selection" render="table"/>
</f:facet>
<h:graphicImage value="../resources/img/emptyRadioButton.jpg"/>
</rich:column>
由于
答案 0 :(得分:0)
您可以使用dataTable的ajaxKeys
属性专门引用ajax更新的一行(或多行)。所以要实现这个目标:
将数据表的ajaxKeys
属性绑定到辅助bean中的Set<Integer>
。此集将包含唯一的id
类型值,这些值将引用数据表中要在ajax响应中更新的特定实体。
通过ajax将您要更新的id
的{{1}}属性添加到<h:graphicImage/>
的{{1}}列表中。将图像的值设置为动态表达式,以便可以在支持bean中将其切换出来
render
连接您的ajax侦听器,将所选实体的ID添加到<a4j:ajax/>
设置,并根据需要修改 <a4j:ajax event="selectionchange" listener="#{myBean.rowListener}" render="indicatorImg"/>
<h:graphicImage id="indicatorImg" value="#{myBean.desiredImagePath}"/>
属性。
ajaxKeys