gpt4 book ai didi

javascript - CSJS XSP.partialRefreshGet 似乎没有进行刷新

转载 作者:行者123 更新时间:2023-11-30 08:47:18 26 4
gpt4 key购买 nike

我在左列的应用程序布局上有​​一个 xe:navigator(称为 navigator1)。在右列中,我有一个 dynamicContent 控件。在导航器的 onClick 事件中,我对 navigator1 进行了部分刷新,但 dynamicContent1 没有刷新。我可以进行全面刷新,两者都会刷新,但要以性能价格为代价。我把它放在 onClick 的客户端:

XSP.partialRefreshGet('#{id:dynamicContent1}');
return true

但是当我这样做时,dynamicContent1 没有刷新。我认为我的语法是正确的。如果在服务器端我对 dynamicContent1 进行了部分刷新,它会正确刷新它,但不会刷新 navigator1。所以问题是可以对同一个 onClick 事件进行两次局部刷新吗?

最佳答案

如果我没看错你的问题,这只是一个时间问题:当你在同一个事件中定义客户端代码和服务器代码时,客户端代码总是先执行。所以它刷新了你的dynamicContent控制 before 它执行 navigator事件。

将CSJS代码移至onComplete eventHandler 的属性(property).此属性未出现在事件的“漂亮面板”中,因此您需要直接导航到 <xp:eventHandler />。标记(在源 XML 中或通过大纲),你会发现 onComplete列在所有属性下。

将刷新代码放在 onComplete 中将确保第二次刷新不会发生,直到第一次刷新完成之后,这将允许第二个目标反射(reflect)事件触发的任何更改。

额外提示:您还可以链式刷新:

XSP.partialRefreshGet("#{id:div1}", {
onComplete: function() {
XSP.partialRefreshGet("#{id:div2}", {
onComplete: function() {
XSP.partialRefreshGet("#{id:div3}", {
onComplete: function() {
XSP.partialRefreshGet("#{id:div4}");
}
});
}
});
}
});

这允许您根据需要刷新任意多个目标,但适用相同的规则:如果您需要任何目标“意识到”事件中对数据或组件所做的更改,则需要触发onComplete 链的开始该事件的属性,作为事件本身的客户端代码。

关于javascript - CSJS XSP.partialRefreshGet 似乎没有进行刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20820256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com