【问题标题】:Handling Browser compatibilties with ADF处理与 ADF 的浏览器兼容性
【发布时间】:2015-11-01 11:50:52
【问题描述】:
我正在尝试为 ADF 可编辑表中的输入框捕获“ENTER”键的按键事件。我添加了客户端侦听器和服务器侦听器,并在 af:resource 标记中添加了输入框的 JavaScript 代码。
要求如下——
我有一个共有 6 列的可编辑表,但只有第一列和最后一列是可编辑的。因此,当用户在第一列中输入一个值并点击回车时,我需要从其他一些业务组件中填充一些数据并填充其他列。
我能够捕获 enter keypress 事件,但是当我在调用服务器端方法后使用 chrome 时,行焦点会自动移动到表中的下一行。
有人可以告诉我如何在桌子上停止这个。这仅在 chrome 中发生。该代码在 Firefox 和 IE 中运行良好。
【问题讨论】:
标签:
oracle-adf
jdeveloper
【解决方案1】:
您可以根据要求通过 javascript 将焦点设置在您需要的字段上。但是您需要知道要设置焦点的组件的客户端 ID。
在您的事件处理程序中调用它:
String clientId = ...
String script = "AdfPage.PAGE.findComponent('" + clientId + "').focus();";
FacesContext context = FacesContext.getCurrentInstance();
Service.getRenderKitService(context,
ExtendedRenderKitService.class).addScript(context, script);
script 将在处理响应时在客户端上调用。