选项卡内的 JSF 下拉列表 header
JSF dropdown list inside a tab header
我正在使用 JSF 和 rich faces 4.5.5,我正试图在选项卡面板的 header 中显示下拉菜单。到目前为止,这就是我所拥有的:
<rich:tabPanel id="reportTabPanel" >
<a4j:repeat var="reportCategory" value="${workBean.categories}">
<rich:tab>
<f:facet name="header">
<h:panelGroup>
<h:selectOneMenu value="#{reportCategory.currentSelection}" style="background:none;border:none;width:15px">
<f:selectItems value="#{reportCategory.availableReports}" />
</h:selectOneMenu>
<h:outputText value="#{reportCategory.displayedTitle}" />
</h:panelGroup>
</f:facet>
<div id="reportContent" name="content" >
<h:outputText value="#{reportCategory.displayedContent}" escape="false" />
</div>
</rich:tab>
</a4j:repeat>
</rich:tabPanel>
显示正常。我在左侧显示 drop-down 箭头,在每个选项卡的右侧显示选项卡名称 header。然而,事件处理是狡猾的。当我单击下拉菜单时,列表会在我松开按钮后立即打开和关闭(防止我在列表中创建 selection)。为了 select 下拉列表中的任何内容,我必须按住鼠标按钮并在 header 区域外释放它,这样列表就不会关闭。只有这样我才能在下拉区域中 select 我的选项。
我相信选项卡 header 正在获取释放按钮事件并在需要时使用它来更改选项卡(这看起来很明显)。
我想要的是下拉列表优先于选项卡 header。无论如何这样做?
或者,有没有办法在鼠标悬停时打开下拉菜单?
我不是 JSF 的专家。我试过查看实现自定义渲染器,但我的问题更多地与事件有关,而不是视觉,所以不确定这是正确的方法。有什么建议吗?指针?
谢谢
w。
只需将 onclick="event.stopPropagation()"
添加到 h:selectOneMenu
,这将阻止点击事件到达选项卡。
(就是说为什么在选项卡 header 中需要一个 select?它是一个导航元素。)
我正在使用 JSF 和 rich faces 4.5.5,我正试图在选项卡面板的 header 中显示下拉菜单。到目前为止,这就是我所拥有的:
<rich:tabPanel id="reportTabPanel" >
<a4j:repeat var="reportCategory" value="${workBean.categories}">
<rich:tab>
<f:facet name="header">
<h:panelGroup>
<h:selectOneMenu value="#{reportCategory.currentSelection}" style="background:none;border:none;width:15px">
<f:selectItems value="#{reportCategory.availableReports}" />
</h:selectOneMenu>
<h:outputText value="#{reportCategory.displayedTitle}" />
</h:panelGroup>
</f:facet>
<div id="reportContent" name="content" >
<h:outputText value="#{reportCategory.displayedContent}" escape="false" />
</div>
</rich:tab>
</a4j:repeat>
</rich:tabPanel>
显示正常。我在左侧显示 drop-down 箭头,在每个选项卡的右侧显示选项卡名称 header。然而,事件处理是狡猾的。当我单击下拉菜单时,列表会在我松开按钮后立即打开和关闭(防止我在列表中创建 selection)。为了 select 下拉列表中的任何内容,我必须按住鼠标按钮并在 header 区域外释放它,这样列表就不会关闭。只有这样我才能在下拉区域中 select 我的选项。 我相信选项卡 header 正在获取释放按钮事件并在需要时使用它来更改选项卡(这看起来很明显)。
我想要的是下拉列表优先于选项卡 header。无论如何这样做? 或者,有没有办法在鼠标悬停时打开下拉菜单?
我不是 JSF 的专家。我试过查看实现自定义渲染器,但我的问题更多地与事件有关,而不是视觉,所以不确定这是正确的方法。有什么建议吗?指针?
谢谢 w。
只需将 onclick="event.stopPropagation()"
添加到 h:selectOneMenu
,这将阻止点击事件到达选项卡。
(就是说为什么在选项卡 header 中需要一个 select?它是一个导航元素。)