2013-06-11 55 views
0

我正在嘗試捕獲ADF可編輯表內的輸入框的「ENTER」鍵的按鍵事件。我添加了客戶端監聽器和服務器監聽器,並在af:resource標記中爲輸入框添加了JavaScript代碼。處理與ADF的瀏覽器兼容性

需求如下 - 我有一個總共6列的可編輯表,但只有第一列和最後一列是可編輯的。因此,當用戶在第一列輸入值並點擊輸入時,我需要從其他業務組件填充一些數據並填寫其他列。

我能夠捕獲enter keypress事件,但是當我在調用服務器端方法後使用chrome時,行焦點會自動移動到表中的下一行。 有人能告訴我如何在桌子上停止這個。這隻發生在鉻。該代碼在Firefox和IE中正常工作。

回答

0

您可以根據要求通過javascript將焦點設置在需要的字段上。但是您需要知道要關注的組件的客戶端ID。在事件處理 調用此:

String clientId = ... 
String script = "AdfPage.PAGE.findComponent('" + clientId + "').focus();"; 
FacesContext context = FacesContext.getCurrentInstance(); 
Service.getRenderKitService(context, 
    ExtendedRenderKitService.class).addScript(context, script); 

script將在客戶端上時,響應的處理被調用。