gpt4 book ai didi

jsf - Richfaces tabPanel - 对不同的选项卡使用相同的页面动态更改内容

转载 作者:行者123 更新时间:2023-12-04 16:46:23 25 4
gpt4 key购买 nike

我正在使用 Seam 2.1.2 和 RichFaces 3.3.2.SR1。

<a4j:form>
<rich:tabPanel switchType="ajax">
<rich:tab label="TAB 1" actionListener="#{outControl.tab1}" immediate="true">
<ui:include src="/pages/agenda/TabContain.xhtml" />
</rich:tab>
<rich:tab label="TAB 2" actionListener="#{outControl.tab2}">
<ui:include src="/pages/agenda/TabContain.xhtml" />
</rich:tab>
...

TabContain.xhtml:

<rich:extendedDataTable value="#{manBean.seDataModel}" var="out" id="bc_table" 
sortMode="#{manBean.sortMode}" selectionMode="#{manBean.selectionMode}"
tableState="#{manBean.tableState}" selection="#{manBean.selection}"
rowKeyVar="rkvar">
<rich:column sortable="false" id="bc_col_0">
...

extendedDataTable 的内容应该取决于所选的选项卡。我的第一种方法是在选项卡中设置一个 actionListener 并更改该操作中的 manBean。在 actionListener 之后,即使我可以在日志中看到 manBean 已更改,这也不会反射(reflect)在浏览器的页面中。就像没有提神一样。我尝试在 rich:tab 中设置一个 rerender,但也没有成功。

有什么想法吗?也对其他方法感到高兴,这可能不是最好的方法。

最佳答案

不确定我是否可以轻松地将其表达出来,但这里是...如果您有固定数量的选项卡并且您提前知道可能的值,请考虑通过 ui:param 将参数传递给可重用模板。

例子带有标签面板的模板

<rich:tabPanel switchType="ajax">
<rich:tab label="TAB 1" >
<ui:include src="/pages/agenda/TabContain.xhtml">
<ui:param name="dataModel" value="#{dataBean.dataset1}" />
</ui:include>
</rich:tab>
<rich:tab label="TAB 2">
<ui:include src="/pages/agenda/TabContain.xhtml">
<ui:param name="dataModel" value="#{dataBean.dataset2}" />
</ui:include>
</rich:tab>

然后在resusableDataTable模板中

<rich:extendedDataTable value="#{dataModel}" ....>
<rich:column sortable="false" id="bc_col_0">
....
</rich:extendedDataTable>

然后“dataModel”的值将作为参数传递到 TabContain.xhtml 中,并替换任何有 #{dataModel} 的地方。

希望这会有所帮助,我在我们的项目中基本上就是这样做的。

关于jsf - Richfaces tabPanel - 对不同的选项卡使用相同的页面动态更改内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2326132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com