Ajax XSP.partialRefreshGet-不发送值也不触发事件

Ajax XSP.partialRefreshGet-不发送值也不触发事件,ajax,xpages,xpages-ssjs,Ajax,Xpages,Xpages Ssjs,我在这上面花了几个小时,现在我已经筋疲力尽了 有人能告诉我为什么下面的方法不起作用吗 刚刚在Domino8.5.3服务器上创建了一个新的数据库—所有默认设置 我希望“$$xspsubmitvalue”应该包含“whatYouWantToSendHere”,但它是空的 我正在使用URL打开XPage:/fresh.nsf/test.xsp?打开并登录 这是按下按钮后的请求URL: /fresh.nsf/test.xsp?Open&Login&$$ajaxid=view%3A_id1

我在这上面花了几个小时,现在我已经筋疲力尽了

有人能告诉我为什么下面的方法不起作用吗

刚刚在Domino8.5.3服务器上创建了一个新的数据库—所有默认设置

我希望“$$xspsubmitvalue”应该包含“whatYouWantToSendHere”,但它是空的

我正在使用URL打开XPage:
/fresh.nsf/test.xsp?打开并登录

这是按下按钮后的请求URL:

/fresh.nsf/test.xsp?Open&Login&$$ajaxid=view%3A_id1%3ArefreshMe
这是表格数据:

$$viewid:!d6g1y5acmu!

$$xspsubmitid:view:_id1:_id2

$$xspexecid:

**$$xspsubmitvalue:**

$$xspsubmitscroll:0|0

view:_id1:view:_id1
非常感谢您的意见

谢谢

/J

源代码


首先,我相信在调用partialRefreshGet函数的末尾有一个额外的“,{}”,partialRefreshGet只接受两个参数,ID和options对象,但这不是您的问题


问题是,这一切都发生在同时执行部分刷新的按钮内部-由于部分刷新是异步的,并且一次只能发生一次部分刷新,因此执行部分刷新的代码与执行部分刷新的按钮单击操作相冲突。在按钮上设置submit=“false”,看看它是否有效。

首先,我相信在调用partialRefreshGet函数的末尾,您还有一个额外的“,{}”,partialRefreshGet只接受两个参数,ID和options对象,但这不是您的问题


问题是,这一切都发生在同时执行部分刷新的按钮内部-由于部分刷新是异步的,并且一次只能发生一次部分刷新,因此执行部分刷新的代码与执行部分刷新的按钮单击操作相冲突。在按钮上设置submit=“false”,看看它是否工作。

按钮的代码是“损坏的”:它触发部分刷新,CSJS代码将永远不会执行

改变这个

<xp:eventHandler
        event="onclick"
        submit="true"
        refreshMode="partial"
        refreshId="refreshMe">

对此

<xp:eventHandler event="onclick" submit="false">

然后它将按要求工作

编辑


将执行正常的CSJS代码,但由于内部阻塞(XSP.lastSubmit中存储的时间戳),不会执行基于CSJS的部分刷新。

按钮的代码“已损坏”:它触发部分刷新,并且CSJS代码将永远不会执行

改变这个

<xp:eventHandler
        event="onclick"
        submit="true"
        refreshMode="partial"
        refreshId="refreshMe">

对此

<xp:eventHandler event="onclick" submit="false">

然后它将按要求工作

编辑


将执行正常的CSJS代码,但由于内部阻塞(存储在XSP.lastSubmit中的时间戳),不会执行基于CSJS的部分刷新。

不仅$$xspsubmitvalue为空,而且不会触发任何事件!我预计至少会触发onStart和onComplete,但不会触发。也没有JavaScript错误。$$xspsubmitvalue不仅为空,而且没有任何事件被触发!我预计至少会触发onStart和onComplete,但不会触发。也没有JavaScript错误。不完全正确-CSJS代码将实际触发,但在按钮事件触发期间调用它-因为它被设置为submit=“true”按钮的部分刷新已被视为“进行中”,防止在按钮单击事件的CSJS端以编程方式调用任何部分刷新。因此,从技术上讲,您的解决方案是正确的,但并非出于您所说的原因。我的意思是CSJS触发的部分刷新。不完全正确-CSJS代码实际上会触发,但它会在按钮事件触发期间被调用-因为它设置为submit=“true”按钮的部分刷新已被视为“正在进行中”,防止在按钮单击事件的CSJS端以编程方式调用任何部分刷新。所以从技术上来说,你的解决方案是正确的,但不是因为你说的原因。我的意思是CSJS触发了部分刷新。我的拷贝粘贴尝试解决另一个问题时有点失控。谢谢不完全正确-通过使用XSP.allowSubmit()可以一次运行多个部分刷新。SCNR:-)@Sven:)-非常正确-您可以更改默认规则以创建新的环境。我的副本粘贴尝试解决另一个问题时有点失控。谢谢不完全正确-通过使用XSP.allowSubmit()可以一次运行多个部分刷新。SCNR:-)@Sven:)-非常正确-您可以更改默认规则以创建新环境