JSF怎么获取某行某列的值呢? 80

<rich:dataTableid="datatableDetailList"value="#{AS01E01Handler.detailList}"var="detai... <rich:dataTable id="datatableDetailList" value="#{AS01E01Handler.detailList}" var="detailList">
<a4j:support event="onRowClick" action="#{AS01E01Handler.selectRow}">
<f:setPropertyActionListener target="#{AS01E01Handler.detailRow}" value="#{detailList}" />
</a4j:support>

当我点击Table时,已经能获取选中行[detailRow]的对象值了,但在Handler中怎么才能选中行的列值呢?
比如有30列,ID为1~30,我怎么才能在Handler中得到点击某行的某列的值呢?
求助,小弟在此谢过!~~
展开
 我来答
东方猫
2012-03-30 · TA获得超过303个赞
知道小有建树答主
回答量:290
采纳率:0%
帮助的人:283万
展开全部
这个比较简单,dataTable里面有个属性,rowKeyVar="index",rowKeyVar就是列出dataTable里面集合的下标。举个例子,比如你的value="#{AS01E01Handler.detailList}" 里面的detailList有个属性,name(姓名),num(学号)。现在detailList.size()=5,那么现在就有5行数据。我们来取你想要的,第4行第2列的值。那就是获得那一行的名字咯。
<f:facet name="header">
<rich:columnGroup >
<rich:column>
<h:outputText value="编号" />
</rich:column>
<rich:column >
<h:outputText value="姓名" />
</rich:column>
<rich:column >
<h:outputText value="学号" />
</rich:column>
</rich:columnGroup>
</f:facet>
<rich:column >
<h:outputText value="#{index+1}" />
</rich:column>
<rich:column >
<h:outputText value="#{detailList,name}" >
<a4j:support event="onRowClick" onsubmit="getIndex(#{index});" action="#{AS01E01Handler.selectRow}"
<a4j:ajaxListener type="org.ajax4jsf.ajax.ForceRender" />
</a4j:support>
</h:outputText>
</rich:column>
<rich:column >
<h:outputText value="#{detailList,num}" />
</rich:column>
这里我定义了一个JS函数,getIndex(index);这样你点击时,就能获得那一行的下标了,第4行,那么这个下标就是3。你需要将这个值传递到后台。那么在AS01E01Handler里面需要增加属性 int index;在页面上:
function getIndex(index) {
document.getElementById(‘currRow’).value = index;
}
<h:inputHidden id="currRow" value="#{AS01E01Handler.index}" />
这样当你点击时,不是就将3这个下标传到后台的AS01E01Handler的index了吗?
这样,你的方法selectRow就能拿到index这个值了,接着就用detailList.get(index).getName();
就得到了你要的值了。第四行第二列,就是那个姓名。

好吧,希望对你有所帮助。
yyyrrrbbbok
2012-03-28 · TA获得超过121个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:182万
展开全部
rich:dataTable有没有selection属性?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式