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

解决方案 »

  1.   

    myfacse中有主从表的显示示例,你可以参考下.这个问题应该不难
      

  2.   

    例子: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
      

  3.   

    多谢 mxm_1123(无名),现在试试
      

  4.   

    我的h:commandLink action 根本就没有执行,不知道是怎么回事,我设置断点都没有进入(我试过action 或者actionListener都没有进入)
    我在 selectView 方法里设置断点,调试时根本就没有进入,不知怎么回事
    <h:column>
    <f:facet name="header"><h:outputText value="定单号" /></f:facet>
    <h:commandLink actionListener="#{webOrderListBean.selectView}" >
    <h:outputText value="#{order.orderNo}" /> 
    </h:commandLink>
    </h:column>
    WebOrderListBean:public void selectView(ActionEvent ev){
    UIData datatable = findParentHtmlDataTable(ev.getComponent());
    OrderViewBean bean =(OrderViewBean )datatable.getRowData();
    this.setFlowOrderNo(bean.getOrderNo());
    //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());
    }
      

  5.   

    调试时发现一个问题,就是点击commandLink 链接后,进入页面不是同一个request,webOrderListBean又被重新创建了一个,所以在执行action前就出错了。不知道怎样解决(不想配置成session)
      

  6.   

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

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

  7.   

    我页面里边有两个form我想点击第一个form中的orderid 链接后(或者datatable的行)刷新第二个form,第一个form显示内容不变,不知道能不能实现,如果有例子的话,就太感谢了
      

  8.   

    用AJAX就行啊  局部更新 很方便的