【问题标题】:Change a buttons style-class on partial refresh在部分刷新时更改按钮样式类
【发布时间】:2015-02-27 05:29:23
【问题描述】:

我在一个面板 (id="panelButtons") 中有一系列按钮,这些按钮嵌套在另一个面板 (id="panelView") 中。目前,每个按钮上的 onclick 事件都会设置一个 sessionScope 变量并在 panelView 上进行部分刷新。按钮如下所示:

<xp:button value="Home" id="button1">
            <xp:this.styleClass>
            <![CDATA[#{javascript:(sessionScope.ssSelectedView == "ccHome.xsp") ? "btn btn-primary btn-xs" : "btn btn-default btn-xs"}]]></xp:this.styleClass>
            <xp:eventHandler event="onclick" submit="true"
                refreshMode="partial" refreshId="panelView">
                <xp:this.action><![CDATA[#{javascript:sessionScope.ssSelectedView = "ccHome.xsp"}]]>
                </xp:this.action>
            </xp:eventHandler>
        </xp:button>
        &#160;
        &#160;
        <xp:button value="Products" id="button2">
            <xp:this.styleClass>
            <![CDATA[#{javascript:(sessionScope.ssSelectedView == "ccProducts.xsp") ? "btn btn-primary btn-xs" : "btn btn-default btn-xs"}]]></xp:this.styleClass>
            <xp:eventHandler event="onclick" submit="true"
                refreshMode="partial" refreshId="panelView">
                <xp:this.action><![CDATA[#{javascript:sessionScope.ssSelectedView = "ccProducts.xsp"}]]>
                </xp:this.action>
            </xp:eventHandler>
        </xp:button>

因此,如果设置了 sessionScope,我想要将按钮显示为 btn-primary,否则使用默认值。当页面加载时 sessionScope 设置为“ccHome.xsp”,但是如果我点击 Products 按钮 sessionScope 会改变,但按钮显示不会。所以看起来样式类只在页面加载上计算。 JavaScript 被设置为动态运行,因此在完全刷新的情况下,有一种方法可以强制样式类在部分刷新时更改。

编辑: 将 onClick 设置为执行完整更新,它也不会更改按钮上的样式类。

【问题讨论】:

    标签: twitter-bootstrap xpages


    【解决方案1】:

    它不工作的原因是因为引导主题覆盖了你的 styleClass,你需要禁用按钮上的主题

    <xp:button value="Home" id="button1" disableTheme="true">
    

    【讨论】:

    • 做到了,很明显但不是 :-) 谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    相关资源
    最近更新 更多