【问题标题】:jsf ui:repeat and using row value as an idjsf ui:repeat 并使用行值作为 id
【发布时间】:2010-11-02 07:13:10
【问题描述】:

我有以下代码

            <ui:repeat value="#{monitorForm.customerList}" var="custRow">
                <h:outputText value="#{custRow.name}"/><br/>    

                <rich:dataTable id="tbl_#{custRow.id}" var="row" value="#{custRow.orderList}">
                   <!--  show sales orders -->
                </rich:dataTable>
            </ui:repeat>

为每一行生成的 HTML 是:

 <table cellspacing="0" cellpadding="0" border="0" id="monitorFrm:j_id392:0:tbl_" class="rich-table ">
      <colgroup span="0"></colgroup><tbody id="monitorFrm:j_id392:0:tbl_:tb"></tbody>
 </table>

在输出中,表格的 id 对于每一行都是空的:id="monitorFrm:j_id392:0:tbl_"

有没有办法动态使用#{custRow.id}作为表的id?

或者有其他方法吗?

【问题讨论】:

    标签: jsf richfaces


    【解决方案1】:

    如果我理解,您需要通过 Javascript 从客户端使用该表 ID...

    如果是,也许您可​​以使用 ui:repeat 的 varStatus 代替 Id,并将该变量用作 DIV 元素的 id:

    <ui:repeat value="#{monitorForm.customerList}" var="custRow" varStatus="st">
                <h:outputText value="#{custRow.name}"/><br/>    
    
                <div id="#{st.index}">
                      <rich:dataTable var="row" value="#{custRow.orderList}">
                      </rich:dataTable>
                </div>
    

    如果您需要从客户端访问,您可以调用 DIV 并获取孩子...

    【讨论】:

    • 您好,谢谢!我用了你的想法,它对我有用。我将它用于以下目的:每个客户都有一个全选复选框来选择所有销售订单。通过这种方式使用 JQuery,我可以在 div 中获取具有选定 ID 的表,并设置/取消设置每一行的所有复选框。美妙之处在于,在 bean 中还设置了每个 的设置器。我不知道。
    猜你喜欢
    • 2014-01-03
    • 2011-12-10
    • 2012-06-06
    • 2017-06-01
    • 2012-09-29
    • 2013-03-19
    • 1970-01-01
    • 2023-04-07
    • 2013-01-27
    相关资源
    最近更新 更多