从更新中排除ID

时间:2012-02-22 23:52:55

标签: ajax jsf-2

我可以从update=":myComponent"中排除特定的ID吗?

我有一个更大的页面(有几个表,输入字段等),它包含在<p:panel id="outerPanel">中。大多数时候,我只执行update=":outerPanel",这很好。但是现在我遇到了一个问题,我必须更新页面,除了一张桌子。

如何从更新过程中排除该表(或一般的任何组件)?

2 个答案:

答案 0 :(得分:0)

不,我认为这不可能来自facelet。在服务器端,你可以操纵ajax请求,但我认为这不是你想要的。

也许您的视图允许在部件周围包裹一些h:panelGroup以进行更新。

答案 1 :(得分:0)

如果可以通过某种逻辑识别不刷新的ID(即:

if(myVar==1) { idToExclue = 'id1';}
else // ... etc

然后你可以尝试使用jsf.util.chain构建一个JSF调用:(注意这使用了Mojarra JSF impl。)

function myJsfSubmit(callerElement) {
  var myIdsToSubmit = 'main-form:id-to-refresh-1 main-form:id-to-refresh-2';
  // put your logic to exclude the desired ID here
  // ...
  // then
  jsf.util.chain(callerElement,null,'mojarra.ab(this,event,\'action\',
      \'main-form:id_to-submit\',\'+ myIdsToSubmit +\')');
  return false;
  }

在表单或组件的onClick()onSubmit()上使用上述功能:

<h:commandButton onclick="myJsfSubmit(this)" />