- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在左列的应用程序布局上有一个 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/
我在左列的应用程序布局上有一个 xe:navigator(称为 navigator1)。在右列中,我有一个 dynamicContent 控件。在导航器的 onClick 事件中,我对 navig
我是一名优秀的程序员,十分优秀!