问题标签 [rerender]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
16128 浏览

jsf - 带有 selectBooleanCheckbox 的 JSF ReRender 支持

我有一个 JSF 页面,我希望在该页面上有一个复选框,单击该复选框时,将添加/删除页面中的某些其他表单字段。这是我目前拥有的复选框的(简化)代码:

这是我要隐藏的组件的代码:

目前,单击复选框什么都不做;“selectOneMenu”不会消失。我究竟做错了什么?

0 投票
4 回答
16178 浏览

jsf - 使用 RichFaces 进行绝对重新渲染

我的问题是 RichFacesreRender在元素树中的当前元素“下”不起作用;只有上层元素会被重新渲染。

有没有办法使用 AJAX 访问较低的元素?

任何帮助,将不胜感激!丹尼尔

编辑我将此问题编辑为更一般的问题。如果对原始问题感兴趣,请参阅修订。

0 投票
1 回答
865 浏览

jquery - a4j:repeat - 动态添加一个新元素

我正在尝试实现(作为更大系统的一部分)用户能够发布消息的功能。当用户单击帖子按钮时,我使用 RichFaces 和 a4j 来检索使用 ajax 生成的帖子。

我宁愿不要在返回响应后立即自动显示帖子。相反,我想在隐藏的 div 中添加一个输出面板。当用户单击发布按钮时,该输出面板将被填充,但显然对用户隐藏。

之后我想做的是使用 jQuery 将新元素从隐藏的 div 移动到正确的位置。

无论如何,这里的问题是我正在使用 a4j:repeat 的 ajaxKeys 属性来更新单行,当对它采取行动时。例如,如果有人给该行评分 5,我只想重新渲染该行(通过在服务器端设置正确的键)。

如果我使用这种方法,虽然将 ajax 创建的元素移动到其他帖子旁边最初会正常工作,但如果用户对该行采取行动,我不相信 a4j:repeat 将能够使用它给定它不是自己生成的。

它是否正确?如果是这样,是否有任何人可以建议的解决方法?

Facebook 也能做到类似的事情。您可以创建或删除帖子以及对帖子发表评论,并且只更新该对象。我开始认为 a4j:repeat 可能不是解决这个问题的最佳方法。想法?

0 投票
1 回答
2419 浏览

css - JSF dataTable 重新渲染失去 CSS 样式

我有一个 dataTable 在通过正常(非 ajax)请求/响应周期呈现时按需要工作。

我定义了一个样式,将背景颜色和填充应用于表中的第一行:

正如我上面提到的,当通过典型的请求/响应加载时,填充和背景颜色看起来很完美。但是,有一些操作可能会导致此表通过 AJAX 重新呈现。发生这种情况时,表会正确重新加载(它是数据),但不会重新应用上述样式。

由于在使用 dataTable 组件时没有办法专门为第一行分配一个 CSS 类。所以,我使用上面的 CSS 选择器来获取第一行。以前有没有人处理过这样的问题?我唯一的选择是尝试在 ALL 的 oncomplete 中使用 jQuery...可能有很多不同的地方...可以触发重新渲染表的操作?

我的问题是,为了速度,我试图避免使用richfaces 表格组件,我需要让表格可以滚动。因此,我使用浏览器特定的 CSS 解决方案来 srcoll 表格正文并保持标题静态。主要的问题是我需要表格的第一行有一个顶部填充值,将其向下推到表格标题的固定位置下方。

0 投票
2 回答
1082 浏览

jsf - JSF:dataTable 中带有转换器的 inputText 问题

我使用自定义转换器为 h:dataTable 中的单元格构建 ah:inputText。如果我重新渲染整个表格,可以转换输入文本并且可以显示转换后的文本。

问题是,整个表格的重新渲染会释放下一个输入框的焦点。我试着解释清楚。

我遇到的问题:

  1. 用户在表格单元格中输入数据。
  2. 用户按 Tab 键并跳转到表格中的下一个输入框。
  3. 同时,刚刚输入的文字会立即转换并显示出来。
  4. 但是由于整个表格的重新渲染,用户失去了下一个输入框的焦点。

我想要的是:

  1. 用户在表格单元格中输入数据。
  2. 用户按 Tab 键并跳转到表格中的下一个输入框。
  3. 同时,刚刚输入的文本应立即转换并显示。
  4. 用户不应该失去下一个输入框的焦点(可能使用部分重新渲染)。

我还尝试为每个单元格分配 id 以进行部分重新渲染,但我不知道如何在 dataTable 中执行此操作。

任何人都有解决问题的方法吗?谢谢。

0 投票
2 回答
800 浏览

jsf - JSF/Richfaces/A4j ==> 组件/字段转换和重新渲染问题

我在 JSF 页面中有一个输入字段,如下所示(映射到支持 bean 上的 BigDecimal)

还有一个 a4j:commandButton 用于“刷新”页面上数据库中的所有数据:

以下是重现我的问题的步骤:请注意,无论是否在 a4j:support 上设置了 reRender 属性,都会发生错误

以下是重现的步骤 - 只是为了进一步澄清:

  1. 导航到存在 BigDecimal 输入字段的屏幕
  2. 在字段中输入 aa(应该是数字,但故意输入非数字字符)
  3. 选项卡关闭字段
  4. 注意报错 'aa' is not a valid netVolume
  5. 单击重置按钮
  6. 所有更改的字段都有其原始值,但输入了非数字数据的字段除外
  7. 除非用户手动删除字段中的非数字数据或刷新整个屏幕,否则“坏数据”会一直存在
0 投票
1 回答
672 浏览

apache-flex - 启动 Flex DataGrid 渲染

我有一个 DataGrid,其中一些列可以有一个 labelFunction。labelFunction 结果的性质可能会产生问题(例如应用格式化、绕过格式化)。

如何让 DataGrid 重新渲染可见项目,以便再次运行 labelFunction 以获取新数据。

我已经尝试过 invalidateDisplayList、validateNow,并尝试在 DataGrid 上调度 ResizeEvents。没有成功。

0 投票
1 回答
2307 浏览

jsf - h:selectOneMenu 标签在 a4j 重新渲染时不变

我有一个 h:selectOneMenu 设置,看起来像这样:

创建新项目时,新项目确实显示在下拉列表中,但如果我更改项目的“名称”属性并保存,标签在下一次请求之前不会更改为新名称,尽管bean 中的数据已更改。

所以我通过在保存更改完成后强制再次调用重新渲染来解决它。问题是,这也会重新呈现消息面板,所以我会删除任何可能已显示的消息。使用limitToList="true"in 与a4j:jsFunction不调用它的效果相同。

我需要建议;要么是重新渲染功能的新目标,要么是解决问题的另一种方法。提前致谢!

0 投票
2 回答
1317 浏览

javascript - 在richfaces中重新渲染不会触发window.onload?

我在网站中有很多地方我希望在页面加载时执行 javascript 代码,以及在重新呈现代码周围的区域时执行,例如

大多数代码是 div 中存在的菜单、滑块等的初始化代码。

我想通过将函数调用添加到 window.onload 事件来处理这些代码片段。

这适用于加载页面,但是如果我重新渲染该区域,则不会触发 window.onload 事件......我在不同的浏览器中尝试过这个,但没有成功。

我不能使用导致重新渲染的元素中的 oncomplete,因为它们到处都是,而且它们不应该真正了解组件的实现。

任何想法如何解决这个问题?

0 投票
1 回答
2354 浏览

java - 使用 javascript 命令重新渲染字段

我有 2 个字段。一个是 ah:selectOneMenu 与地点列表。另一个是啊:inputText。

我想要做的是,如果用户在 selectOneMenu 上选择地点,然后点击搜索,它将搜索那个地点。如果他在 selectOneMenu 上选择了一个地方,但仍然在 inputText 上键入其他地方并单击搜索,它将搜索已写入的地方而不是选定的地方。

因此,如果用户在 inputtext 上键入任何内容,它会禁用 selectOneMenu,如果他清除该字段,它将再次启用,这将是非常棒的。我尝试在事件中使用 javascript

onchange="if (this.value !='') document.getElementById('placeSelectOneMenu').disabled='true'"

但它没有用。我能做些什么?有任何想法吗?

它仅在我单击搜索时才有效,而不是正确地重新渲染该字段。我想要的是动态地重新渲染。