日期:2014-05-18  浏览次数:20608 次

100分请教Jsf中选择Datatable行显示该记录的明细问题
在Baidu查了好多资料都没有解决问题
问题一下主从明细显示的问题,就是我想在同一个页面显示定单主表和定单明细,选择一个定单后,显示该定单的详情(在同一页面),请问怎样处理,或者有没有示例代码,谢谢了。

------解决方案--------------------
myfacse中有主从表的显示示例,你可以参考下.这个问题应该不难
------解决方案--------------------
例子:http://www.irian.at/myfaces/masterDetail.jsf
还有别的方法,只能提供你一点思路,代码你自己写吧!
首先建立一个backbean如listbean,用表格循环时在某的字段上加连接,并加一个actionListener,如: <h:column>
<f:facet name= "header ">
<h:outputText value= "ID " />
</f:facet>
<h:commandLink actionListener= "#{listbean.someaction} ">
<h:outputText value= "#{order.id} " />
</t:commandLink>
</h:column>

在BEAN中定义方法:
public void someaction(ActionEvent ev){
UIData datatable = findParentHtmlDataTable(ev.getComponent());
this.currentorder=(Detail)datatable.getRowData();
this.show=true;
}
private HtmlDataTable findParentHtmlDataTable(UIComponent component)
{
if (component == null)
{
return null;
}
if (component instanceof HtmlDataTable)
{
return (HtmlDataTable) component;
}
return findParentHtmlDataTable(component.getParent());
}
someaction方法能够得到你点击的那条记录,得到记录后你怎么处理就是你的问题了,你可定义一个变量和一个详细的定单,用show控制是否可以在前台的页面的某一个位置进行显示详细。

GOOD LUCK
------解决方案--------------------
如果你是用的myfaces的话可以这样写:
<t:dataTable id= "data "
var= "order "
value= "#{orderbean.list} "
preserveDataModel= "true "
rows= "10 "
>

<t:saveState value= "#{orderbean.list} "/>
经实验后一种好。
如果你用的是sun的话,那你可能只有用session了,因为它没有上面的标签库

------解决方案--------------------
用AJAX就行啊 局部更新 很方便的