晚上好。我被要求更新在 RichFaces 中实现的 Web 应用程序。该应用程序在复合组件内有一个 rich:extendedDataTable,用于显示一些可搜索的数据。我被要求实现的更新是在提交搜索时自动选择表中的第一行。我找不到从支持 bean 执行此操作的方法,但我确实看到可以使用 JavaScript API 通过调用 selectRow 和 setActiveRow 函数来完成此操作,但问题是我需要表,如果我检查 DOM 并获取表的客户端 ID,比方说“junk:tableId”,然后我将其硬编码到函数中,
#{rich:component('junk:tableId')}.selectRow(0);
#{rich:component('junk:tableId')}.setActiveRow(0});
事情按照我需要的方式进行。为了检索 clientId,我找到了 rich:clientId 函数,并且确认 rich:clientId('tableId') 返回的 clientId 与我从 DOM 获取的 clientId 相同,因此我更新了原始函数调用
#{rich:component('rich:clientId('tableId')')}.selectRow(0);
#{rich:component('rich:clientId('tableId')')}.setActiveRow(0});
它不起作用,现在我不知道该尝试什么。有谁知道我可以尝试什么?
最佳答案
您可以直接使用#{rich:component('tableId')}
,该函数无论如何都会在内部调用clientId
。
#{rich:component('rich:clientId('tableId')')}
这应该会给你带来解析错误。单引号标记字符串,而不是方法参数。
关于javascript - RichFaces 4 ExtendedDataTable - 以编程方式选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30657979/