Jsf 为循环中的h:dataTable生成唯一id
我正在使用JSF2.0。当我试图在h:dataTable的'id'属性中使用一个变量时,它不接受该变量值 我在ui:repeat中有h:dataTable,id值作为ui:repeat的索引,如下所述Jsf 为循环中的h:dataTable生成唯一id,jsf,jsf-2,Jsf,Jsf 2,我正在使用JSF2.0。当我试图在h:dataTable的'id'属性中使用一个变量时,它不接受该变量值 我在ui:repeat中有h:dataTable,id值作为ui:repeat的索引,如下所述 <ui:repeat var="planMap" value="#{planAccountMap.entrySet().toArray()}" varStatus="planMapStatus"> <h:dataTable id="planTable#{plan
<ui:repeat var="planMap" value="#{planAccountMap.entrySet().toArray()}" varStatus="planMapStatus">
<h:dataTable id="planTable#{planMapStatus.index}" value="#{planMap.value}" var="accountList">
有人知道我们是否可以在循环中为h:dataTable生成动态id吗
我有一个使用表id的Java脚本,但由于我无法为循环中的每个表提供唯一的id,因此它会中断。可重复组件中的任何组件都将始终具有动态客户端id。您不能这样做 也许您可以为dataTable组件指定一个唯一的样式类,并使用jQuery选择器返回
ui:repeat
中所有dataTable对象的数组
jQuery('.SomeClass');
可重复组件中的任何组件都将始终具有动态客户端id。您不能这样做 也许您可以为dataTable组件指定一个唯一的样式类,并使用jQuery选择器返回
ui:repeat
中所有dataTable对象的数组
jQuery('.SomeClass');
我做了一些和你很相似的事情。我有一个UI:在datatable列中重复。tbh,如果您签入firebug,那么当您将datatable id放入ui:repet时,它将是唯一的
planMap:0:yourdatatableID
我做了一些和你很相似的事情。我有一个UI:在datatable列中重复。tbh,如果您签入firebug,那么当您将datatable id放入ui:repet时,它将是唯一的
planMap:0:yourdatatableID
这个问题可以通过在datatable中使用datatable来解决。第二个数据表保存在第一个数据表的列中,如下所示
<h:dataTable id="outerTable" value="#{planAccountMap.entrySet().toArray()}" var="planMap" width="100%">
<h:column>
<h:dataTable id="planTable" value="#{planMap.value}" var="accountList"
headerClass="tablehead"
rowClasses="'',altrowcoloropt1"
first="0">
<h:column>
<f:facet name="header">
<h:outputText value="Date" />
</f:facet>
<h:outputText value="#{accountList.date}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="Account Name" />
</f:facet>
<h:outputText value="#{accountList.accountName}"/>
</h:column>
</h:dataTable>
</h:column>
</h:dataTable>
通过此操作,您将获得唯一id,即
outerTable:0:planTable
,outerTable:1:planTable
。这甚至将唯一id扩展到datatable中的每个元素,即outerTable:1:planTable:1:columnid
,outerTable:0:planTable:0:columnid,这个问题可以通过在datatable中使用datatable来解决。第二个数据表保存在第一个数据表的列中,如下所示
<h:dataTable id="outerTable" value="#{planAccountMap.entrySet().toArray()}" var="planMap" width="100%">
<h:column>
<h:dataTable id="planTable" value="#{planMap.value}" var="accountList"
headerClass="tablehead"
rowClasses="'',altrowcoloropt1"
first="0">
<h:column>
<f:facet name="header">
<h:outputText value="Date" />
</f:facet>
<h:outputText value="#{accountList.date}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="Account Name" />
</f:facet>
<h:outputText value="#{accountList.accountName}"/>
</h:column>
</h:dataTable>
</h:column>
</h:dataTable>
这样,您将获得唯一id,即outerTable:0:planTable
,outerTable:1:planTable
。这甚至将唯一id扩展到datatable中的每个元素,即outerTable:1:planTable:1:columnid
,outerTable:0:planTable:0:columnid
组件将根据指定的规则发出客户端标识符,感谢大家的研究和回复。我在datatable中使用datatable解决了这个问题,如下所示<代码>
。通过此操作,我获得了唯一id,即outerTable:0:planTable
,outerTable:1:planTable
…这甚至将唯一id扩展到datatable中的每个元素,即outerTable:1:planTable:1:columnid
,outerTable:0:planTable:0:columnid
组件将根据指定的规则发出客户端标识符,感谢大家的研究和响应。我在datatable中使用datatable解决了这个问题,如下所示<代码>。通过此操作,我获得了唯一id,即outerTable:0:planTable
,outerTable:1:planTable
…这甚至将唯一id扩展到datatable中的每个元素,即outerTable:1:planTable:1:columnid
,outerTable:0:planTable:0:columnid
,这可能是一个解决方案,但在我的例子中,我有多个格式不同的列,所以我更喜欢只使用datatable。现在我在datatable中使用datatable,这可能是一个解决方案,但在我的例子中,我有多个格式不同的列,所以我更喜欢只使用datatable。