当前位置: 首页 > 面试题库 >

如何添加按钮以在最后一个标签附近添加新标签?

邵刚洁
2023-03-14
问题内容

有谁知道如何添加一个按钮来添加位于上一个创建的标签附近的新标签?如果不清楚我要说的是什么,只需查看浏览器中的标签和添加新标签的按钮即可;-)这正是我要管理的内容。

我正在使用MyFaces + PrimeFaces。


问题答案:

您可以<p:tabView>用来显示基于某些bean集合的动态选项卡集。您可以将“添加”选项卡显示为选项卡集的最后一个选项卡。您甚至可以根据需要更改其样式。您可以使用<p:ajax event="tabChange">挂钩标签更改监听器,在其中可以检查“添加”标签是否已打开,然后添加新标签。

例如

<h:form id="form">
    <p:tabView id="tabs" value="#{bean.tabs}" var="tab" widgetVar="w_tabs">
        <p:ajax event="tabChange" listener="#{bean.changeTab}" oncomplete="if (args.newTabIndex) w_tabs.select(args.newTabIndex)" />
        <p:tab title="#{tab.title}">
            <p>#{tab.content}</p>
        </p:tab>
    </p:tabView>
</h:form>

@ManagedBean
@ViewScoped
public class Bean implements Serializable {

    private List<Tab> tabs;

    @PostConstruct
    public void init() {
        // Just a stub. Do your thing to populate tabs.
        // Make sure that the last tab is the "Add" tab.
        tabs = new ArrayList<Tab>();
        tabs.add(new Tab("tab1", "content1"));
        tabs.add(new Tab("tab2", "content2"));
        tabs.add(new Tab("Add...", null));
    }

    public void changeTab(TabChangeEvent event) {
        int currentTabIndex = ((TabView) event.getComponent()).getActiveIndex();
        int lastTabIndex = tabs.size() - 1; // The "Add" tab.

        if (currentTabIndex == lastTabIndex) {
            tabs.add(lastTabIndex, new Tab("tab" + tabs.size(), "content" + tabs.size())); // Just a stub. Do your thing to add a new tab.
            RequestContext requestContext = RequestContext.getCurrentInstance();
            requestContext.update("form:tabs"); // Update the p:tabView to show new tab.
            requestContext.addCallbackParam("newTabIndex", lastTabIndex); // Triggers the oncomplete.
        }
    }

    public List<Tab> getTabs() {
        return tabs;
    }

}

Tab在此示例中,该类只是具有属性title和的普通javabean
content。该oncomplete<p:ajax>是必要的,因为标签内容将添加新标签后否则消失(这看起来很像一个错误PF,毕竟,我用3.3的方式)。



 类似资料:
  • 标签通常用于帮助记录图表设计进程。例如,解释一组表对象。若要创建一个新的标签,点击工具栏的 “标签”按钮,并点击画布的任意位置。 在画布中标签对象的弹出式菜单选项包括: 选项 描述 编辑 更改标签的内容。 剪切 从图表移除标签并放它在剪贴板。 复制 从图表复制标签到剪贴板。 粘贴 将剪贴板的内容贴到图表。 选择全部标签 在图表中选择全部标签。 删除 从图表中删除标签。 调整适合大小 自动调整标签的

  • 标签通常用于帮助记录图表设计进程。例如,解释一组表对象。若要创建一个新的标签,点击工具栏的 “标签”按钮,并点击画布的任意位置。 在画布中标签对象的弹出式菜单选项包括: 选项 描述 编辑 更改标签的内容。 剪切 从图表移除标签并放它在剪贴板。 复制 从图表复制标签到剪贴板。 粘贴 将剪贴板的内容贴到图表。 选择全部标签 在图表中选择全部标签。 删除 从图表中删除标签。 调整适合大小 自动调整标签的

  • 标签通常用于帮助记录图表设计进程。例如,解释一组表对象。若要创建一个新的标签,点击工具栏的 按钮,并点击画布的任意位置。 在画布中标签对象的弹出式菜单选项包括: 选项 描述 编辑 更改标签的内容。 剪切 从图表移除标签并放它在剪贴板。 复制 从图表复制标签到剪贴板。 粘贴 将剪贴板的内容贴到图表。 选择全部标签 在图表中选择全部标签。 删除 从图表中删除标签。 调整适合大小 自动调整标签的大小以适

  • 标签通常用于帮助记录图表设计进程。例如,解释一组表对象。若要创建一个新的标签,点击工具栏的 按钮,并点击画布的任意位置。 在画布中标签对象的弹出式菜单选项包括: 选项 描述 编辑 更改标签的内容。 剪切 从图表移除标签并放它在剪贴板。 复制 从图表复制标签到剪贴板。 粘贴 将剪贴板的内容贴到图表。 选择全部标签 在图表中选择全部标签。 删除 从图表中删除标签。 调整适合大小 自动调整标签的大小以适

  • 标签通常用于帮助记录图表设计进程。例如,解释一组表对象。若要创建一个新的标签,点击工具栏的 按钮,并点击画布的任意位置。 在画布中标签对象的弹出式菜单选项包括: 选项 描述 编辑 更改标签的内容。 剪切 从图表移除标签并放它在剪贴板。 复制 从图表复制标签到剪贴板。 粘贴 将剪贴板的内容贴到图表。 选择全部标签 在图表中选择全部标签。 删除 从图表中删除标签。 调整适合大小 自动调整标签的大小以适