首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使onStart和onComplete事件在xp:pager上工作

如何使onStart和onComplete事件在xp:pager上工作
EN

Stack Overflow用户
提问于 2019-05-07 16:50:52
回答 1查看 85关注 0票数 0

我使用全页覆盖来显示我的XPages的加载掩码。这对于大多数xp控件、按钮、组合框、复选框等都很有效,方法是添加CSJS来调用事件处理程序的onStart()和onComplete()事件。但是,这不适用于xp:Pager控件。寻呼机的每个部分都可以使用onStart和onComplete事件,但它们似乎没有激活。我有一些大的重复控件,寻呼机刷新可能需要几秒钟的时间,所以要让用户知道寻呼机正在工作,覆盖是必不可少的。

我已经将代码添加到xp:Pager元素的onStart和onComplete中,但它们根本不能运行。加载器适用于所有其他xp元素。我已经尝试了部分刷新和完全更新,但都没有触发onStart和onComplete事件?

代码语言:javascript
运行
复制
<xp:pager partialRefresh="true" id="pager1" for="displayData">
 <xp:pagerControl type="First" id="pagerControl1">
  <xp:eventHandler event="onclick" submit="true"
  refreshMode="partial" refreshId="questionBlock" 
  onStart="makeButtonInactive('','');" onComplete="makeButtonActive('','');">
  </xp:eventHandler>
 </xp:pagerControl>
 <xp:pagerControl type="Previous" id="pagerControl2">
  <xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="pagerControl1" onStart="makeButtonInactive('','');"
onComplete="makeButtonActive('','');">
  </xp:eventHandler>
 </xp:pagerControl>
 <xp:pagerControl type="Group" id="pagerControl3">
  <xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="pagerControl1" onStart="makeButtonInactive('','');"
onComplete="makeButtonActive('','');">
  </xp:eventHandler>
 </xp:pagerControl>
 <xp:pagerControl type="Next" id="pagerControl5">
  <xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="pagerControl1" onStart="makeButtonInactive('','');"
onComplete="makeButtonActive('','');">
  </xp:eventHandler>
 </xp:pagerControl>
 <xp:pagerControl type="Last" id="pagerControl6">
  <xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="pagerControl1" onStart="makeButtonInactive('','');"
onComplete="makeButtonActive('','');">
 </xp:eventHandler>
 </xp:pagerControl>
</xp:pager>

makeButtonActive()和makeButtonInactive()函数只是用来显示页面覆盖或单个按钮覆盖的CSJS函数。在这种情况下,我试图做一个完整的页面覆盖,所以唯一要运行的代码是

代码语言:javascript
运行
复制
onStart(document.getElementById("overlay").style.display = "block";)

代码语言:javascript
运行
复制
onComplete(document.getElementById("overlay").style.display = "none";)

完整的功能是

代码语言:javascript
运行
复制
function makeButtonActive(btnId, innerId) {
if (btnId=="") {
    document.getElementById("overlay").style.display = "none"; //Full Page
} else {
    document.getElementById(btnId).disabled=false;      //Button Only
    document.getElementById(innerId).className=tmpclassName;
}
}

代码语言:javascript
运行
复制
function makeButtonInactive(btnId, innerId) {
if (btnId=="") {
    document.getElementById("overlay").style.display = "block"; //Full Page
} else {    
    document.getElementById(btnId).disabled=true; //Button Only
    tmpclassName=document.getElementById(innerId).className;
    document.getElementById(innerId).className="glyphicon glyphicon-refresh gly-sm gly-spin";
}   
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-07 18:31:37

我认识的大多数开发人员都使用Fredrik Norling的备用对话框自定义控件,该控件来自OpenNTF。您也许能够通过交叉引用找出不同之处,或者直接使用它可能会更容易。

如果您使用的是引导主题,请使用this one。如果您使用的是OneUI或非标准主题,请使用this one

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56018836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档