当前位置: 首页 > 知识库问答 >
问题:

inputText onchange事件在非活动后未调用

栾鸣
2023-03-14

inputText字段的代码如下所示;

<xp:inputText id="quickSelectEntry" style="width:170px;">
    <xp:this.dojoAttributes>
        <xp:dojoAttribute name="placeHolder" value="Enter name">
        </xp:dojoAttribute>
    </xp:this.dojoAttributes>
    <xp:typeAhead mode="none" minChars="2" ignoreCase="true"
        var="searchValue" valueMarkup="true">
        <xp:this.valueList><![CDATA[#{javascript:return         nameTypeAhead(searchValue)}]]></xp:this.valueList>
                </xp:typeAhead>

                <xp:eventHandler event="onchange" submit="true"
                    refreshMode="norefresh">
                    <xp:this.action>
                        <xp:actionGroup>
                            <xp:executeScript>
                                <xp:this.script><![CDATA[#{javascript:var searchVal:string = getComponent("quickSelectEntry").getValue();
if (searchVal.substr(0,1).equals("?")) {
    context.redirectToPage("xCheckSecurityGroup.xsp?group=" + searchVal.substr(1));
    return false;
} else {
    var doc:NotesDocument = quickLookupView.getDocumentByKey(searchVal, true);
    if (null != doc) {
        viewScope.lookupKey = doc.getUniversalID();
        viewScope.lookupForm = doc.getItemValueString("form");
        return true;
    } else {
        viewScope.lookupKey = ""
        viewScope.lookupForm = ""
        return false;
    }
}
]]></xp:this.script>
                            </xp:executeScript>
                            <xp:actionGroup>
                                <xp:this.condition><![CDATA[#{javascript:viewScope.lookupKey != ""}]]></xp:this.condition>

                                <xp:openPage target="openDocument"
                                    documentId="#{javascript:return viewScope.lookupKey}">
                                    <xp:this.name><![CDATA[#{javascript:return "x" + viewScope.lookupForm + ".xsp" }]]></xp:this.name>
                                </xp:openPage>
                            </xp:actionGroup>
        </xp:actionGroup>
    </xp:this.action>
</xp:eventHandler>

到目前为止,我已经试着对包含面板进行了定时的部分刷新,我已经将typeahead模式从无设置为满。没什么区别。

除了每10分钟刷新一次页面之外,还有什么是夫妇造成的问题。仅供参考的是,实际的typeahead是正确工作一致的,它只是onchange事件停止发射。

共有1个答案

向安福
2023-03-14

似乎发生的情况是服务器web会话完好无损,但XPages会话丢失了。

将以下内容添加到XPage的底部,它将根据您的设置(以毫秒为单位)提前刷新DIV(30000=300秒=5分钟)-我成功测试的最长时间是3.5小时。

您需要设置一个比应用程序属性中为数据库设置的会话超时长度少至少一分钟的值。

<xp:div id="keepSessionAlive"></xp:div>
<xp:scriptBlock id="scriptBlock1">
    <xp:this.value>
    <![CDATA[   
        XSP.addOnLoad(function(){
            setInterval(function(){
                XSP.partialRefreshPost("#{id:keepSessionAlive}", {});   
            }, 300000)
        })]]>
    </xp:this.value>
</xp:scriptBlock>
 类似资料:
  • 编辑:这是我的舱单

  • 我已经创建了一个片段,当点击一个按钮时,会弹出一个类似对话框的ALTERVIEW。在该视图中包括谷歌登录按钮。当我连接到firebase并在startActivityForResult之后继续执行时,我需要重写onActivityResult方法。但弹出对应的类扩展了另一个对话框类,不能重写onActivityResult方法。当要重写时,它显示方法并没有从其超类错误重写方法。如何解决这个问题。以

  • 在我的非活动类中,我请求了一个Fine location权限,但回调onRequestPermissionsResult“永远不会被调用”。现在我看到了一些与此相关的问题,但他们都认为请求是从活动或片段发出的,没有人考虑从非活动类发出请求。这是我的代码 这是onRequestPermissionResultCallback方法的实现 解决了:正如一些人提到的“activity”的onRequest

  • 我希望能够读取我的滑块值,因此我为我的控制器类使用事件侦听器: 我尝试了每一个MouseDragEvent,但没有一个MouseDragEvent被实际调用(比如在拖动时检测到的,在我开始拖动滑块时应该被调用)。我找到了这篇文章,但它并没有解决我的问题。JavaFX鼠标拖动事件未触发

  • 问题内容: 这是我的媒体播放器代码。当我在模式下以断点运行时,我不知道这段代码中缺少什么。文件夹中的所有文件都会播放。但是,当我以正常模式运行该应用程序时,会播放第一个文件,然后出现此错误: 码: 问题答案: 您没有调用的方法,即超类。将调用添加到的方法中:

  • 我正在Android上使用Firebase云消息。 当应用程序位于前台时,我可以成功接收通知和数据消息 文档说明,如果在应用程序处于后台时收到通知消息,则Firebase将代表应用程序向系统托盘发送通知。这对我不起作用 如果发送了数据消息且应用程序位于后台,则会成功调用onMessageReceived方法 最麻烦的情况是,我强制停止应用程序,然后尝试发送通知或数据消息。在这种情况下,不会调用on