如何禁用xPage placeBar按钮?

时间:2015-09-04 15:48:49

标签: xpages lotus-domino

我的地方栏按钮定义如下:

<xc:ccMain>
    <xc:this.placeBarActions>
        <xe:basicLeafNode label="Save" onClick="XSP.executeOnServer('#{id:saveEventHandler}','#{id:applicationLayout1}')">
        </xe:basicLeafNode>
        ..........

然后:

    <xp:eventHandler id="saveEventHandler" submit="true" event="calledbyid" refreshMode="complete" action="#{javascript:saveDocument();}"></xp:eventHandler>

我想禁用onClick事件上的“保存”按钮,尤其是客户端JS

谢谢

2 个答案:

答案 0 :(得分:0)

而不是使用CSJS,在我看来,这个任务不必要地复杂化,我会使用SSJS和部分刷新的组合:

  1. 服务器端onclick事件设置viewScope变量(requestScope可能不够),如

    viewScope("isDisabled", true)

  2. 同一事件会对按钮周围的已命名xp:divxp:panel执行部分刷新,甚至可能只对名为xp:button的<{1}}

  3. 按钮的disabled属性以编程方式评估viewScope变量:

    disabled="#{javascript:viewScope("isDisabled")}"

  4. 应该做的伎俩。

答案 1 :(得分:0)

您要禁用按钮&#34;保存&#34;在文档的保存和页面重新加载期间。

您的basicLeafNode是placeBarActions的子节点 它被渲染为

<span class="lotusBtn">
    <a href="javascript:;" onclick="javascript:...">Save</a>
</span>

不幸的是,没有财产&#34;禁用&#34;用于轻松禁用按钮的href标签。

使用onclick覆盖按钮的'return false;'事件。当用户在执行期间第二次点击按钮时,它什么都不做。

将颜色设置为灰色,使其在执行期间禁用按钮。您必须使用color:gray !important进行设置,因为OneUI对.lotusBtn a的定义为color: #000 !important,否则将取代灰色设置。

以这种方式更改您的代码

<xe:basicLeafNode
    label="Save"
    onClick="event.target.onclick= 'return false;';
             event.target.setAttribute('style', 'color:gray !important');
             XSP.executeOnServer('#{id:saveEventHandler}', '#{id:applicationLayout1}');">
</xe:basicLeafNode>

由于这个basicLeafNode是applicationLayout1的一部分,因此在重新加载页面后,它将恢复到它的原始内容。