Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpages 使用view.PostScript从SSJS调用partialRefreshGet_Xpages_Client Side_Xpages Ssjs - Fatal编程技术网

Xpages 使用view.PostScript从SSJS调用partialRefreshGet

Xpages 使用view.PostScript从SSJS调用partialRefreshGet,xpages,client-side,xpages-ssjs,Xpages,Client Side,Xpages Ssjs,我在BeforePageKoad事件中运行了一个SSJS。作为SSJS的最后一步,我想进行部分刷新。在我的脚本中,我有以下代码行: view.postScript("partialRefreshGet('#{id:panelAll}')") 当它执行时,我得到一个错误,说partialRefreshGet未定义。我猜我在通话的形式上遗漏了一些东西,但据我所知,这应该是可行的。 以前有人做过这样的事。 如果我不使用此代码,请通过按钮手动刷新panelAll,一切正常。您不能在beforePage

我在BeforePageKoad事件中运行了一个SSJS。作为SSJS的最后一步,我想进行部分刷新。在我的脚本中,我有以下代码行:

view.postScript("partialRefreshGet('#{id:panelAll}')")
当它执行时,我得到一个错误,说partialRefreshGet未定义。我猜我在通话的形式上遗漏了一些东西,但据我所知,这应该是可行的。 以前有人做过这样的事。
如果我不使用此代码,请通过按钮手动刷新panelAll,一切正常。

您不能在beforePageLoad中使用BeforeView.postScript。尝试将其移动到afterPageLoad或beforeRenderResponse。我最近遇到了同样的问题

以下是可以使用view.postScript()的摘要:

  • onClientLoad=什么也不发生
  • beforePageLoad=XSP错误
  • afterPageLoad=工作
  • afterRestoreView=什么也没有发生
  • beforeRenderResponse=有效
  • afterRenderResponse=什么也没有发生

  • 要知道为什么会发生这种情况,请阅读Tim Tripcony在博客文章底部的评论。

    您不能在beforePageLoad中使用before view.postScript。尝试将其移动到afterPageLoad或beforeRenderResponse。我最近遇到了同样的问题

    以下是可以使用view.postScript()的摘要:

  • onClientLoad=什么也不发生
  • beforePageLoad=XSP错误
  • afterPageLoad=工作
  • afterRestoreView=什么也没有发生
  • beforeRenderResponse=有效
  • afterRenderResponse=什么也没有发生

  • 要知道为什么会发生这种情况,请阅读Tim Tripcony在博客文章底部的评论。

    只需在XPage中添加一个脚本块,并进行必要的部分刷新即可

    编辑:

    <xp:scriptBlock id="scriptBlock2" rendered="#{javascript:requestScope.doRefresh}">
        <xp:this.value><![CDATA[
           XSP.addOnLoad( function(){ XSP.partialRefreshGet('#{id:panelAll}') } );
       ]]>
       </xp:this.value>
    </xp:scriptBlock>
    
    
    

    在beforePageLoad中,如果需要,可以设置requestScope变量。

    只需在XPage中添加一个脚本块,并进行所需的部分刷新即可

    编辑:

    <xp:scriptBlock id="scriptBlock2" rendered="#{javascript:requestScope.doRefresh}">
        <xp:this.value><![CDATA[
           XSP.addOnLoad( function(){ XSP.partialRefreshGet('#{id:panelAll}') } );
       ]]>
       </xp:this.value>
    </xp:scriptBlock>
    
    
    

    在beforePageLoad中,如果需要,可以设置requestScope变量。

    这个答案可能有点晚了,我希望它对其他人有用

    因此,简单的答案是使用以下SSJ刷新另一个组件:
    view.postScript(“XSP.partialRefreshGet('{id:
    组件id
    }')”)

    然而,我在尝试它时也遇到了同样的困难,正如Tim Tripcony所建议的,代码似乎运行得太快了,而浏览器仍在接收第一次刷新,并且无法工作。因此,我尝试将其附加到一个OnLoad事件中,如下所示:

    view.postScript(“XSP.addOnLoad(function(){XSP.partialRefreshGet('{id:
    组件id
    }')))

    但这也不起作用。因此,我采用了旧方法,通过使用setTimeout()让脚本在不同的线程中工作,如下所示:

    view.postScript(“setTimeout(function(){XSP.partialRefreshGet('{id:
    组件id
    }'),1)”


    而且它工作起来很有魅力

    这个答案可能有点晚了,我希望它对某些人有用

    因此,简单的答案是使用以下SSJ刷新另一个组件:
    view.postScript(“XSP.partialRefreshGet('{id:
    组件id
    }')”)

    然而,我在尝试它时也遇到了同样的困难,正如Tim Tripcony所建议的,代码似乎运行得太快了,而浏览器仍在接收第一次刷新,并且无法工作。因此,我尝试将其附加到一个OnLoad事件中,如下所示:

    view.postScript(“XSP.addOnLoad(function(){XSP.partialRefreshGet('{id:
    组件id
    }')))

    但这也不起作用。因此,我采用了旧方法,通过使用setTimeout()让脚本在不同的线程中工作,如下所示:

    view.postScript(“setTimeout(function(){XSP.partialRefreshGet('{id:
    组件id
    }'),1)”


    而且它工作起来很有魅力

    我将其添加到beforeRenderResponse中,得到了相同的错误,因此我猜测是语法有问题,或者???view.postScript部分似乎正常工作,但它无法识别partialRefreshGet,并表示它未定义。Bill,view.postScript的内容是客户端代码。看起来你的代码没有分号,这是必需的。此外,ID由服务器更改,它们看起来像“查看:_id1:…”检查Firebug,然后将代码复制到控制台,看看您得到了什么。在查找我没有使用的partialRefreshGet方法后,看起来您可以根据xpageswiki.com在SSJS中使用您可以使用的ID。您确实需要在它前面加上“XSP”,这可能是“未定义”的原因,很可能是因为它试图过早地运行代码,应该用
    XSP.addOnLoad()来包装它。
    ;请参阅Sven的答案以了解正确的语法。我将其添加到beforeRenderResponse中,得到了相同的错误,因此我猜测语法或???view.postScript部分似乎有问题,但它不识别partialRefreshGet,并说它未定义。Bill,postScript的内容是客户端代码。看起来你的代码没有分号,这是必需的。此外,ID由服务器更改,它们看起来像“查看:_id1:…”检查Firebug,然后将代码复制到控制台,看看您得到了什么。在查找我没有使用的partialRefreshGet方法后,看起来您可以根据xpageswiki.com在SSJS中使用您可以使用的ID。您确实需要在它前面加上“XSP”,这可能是“未定义”的原因,很可能是因为它试图过早地运行代码,应该用
    XSP.addOnLoad()来包装它。
    ;有关正确的语法,请参阅Sven的答案。我很好奇为什么要对init进行部分刷新