RichFaces 4 ExtendedDataTable - 以编程方式选择行
RichFaces 4 ExtendedDataTable - Selecting rows programmatically
晚上好。我被要求更新在 RichFaces 中实现的 Web 应用程序。该应用程序在显示一些可搜索数据的复合组件内部有一个 rich:extendedDataTable。我被要求实施的更新是在提交搜索时自动选择 table 中的第一行。我无法从支持 bean 中找到执行此操作的方法,但我确实看到可以通过调用 selectRow 和 setActiveRow 函数使用 JavaScript API 来完成,但问题是我需要 table 的 'clientId',如果我检查 DOM 并获取 table 的客户端 ID,比方说 "junk:tableId",我很难将其编码到函数中,
#{rich:component('junk:tableId')}.selectRow(0);
#{rich:component('junk:tableId')}.setActiveRow(0});
一切如我所愿。为了检索 clientId,我找到了 rich:clientId 函数,并确认 rich:clientId('tableId') returns 与我从 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')')}
这应该会让您遇到解析错误。单引号标记的是字符串,而不是方法参数。
晚上好。我被要求更新在 RichFaces 中实现的 Web 应用程序。该应用程序在显示一些可搜索数据的复合组件内部有一个 rich:extendedDataTable。我被要求实施的更新是在提交搜索时自动选择 table 中的第一行。我无法从支持 bean 中找到执行此操作的方法,但我确实看到可以通过调用 selectRow 和 setActiveRow 函数使用 JavaScript API 来完成,但问题是我需要 table 的 'clientId',如果我检查 DOM 并获取 table 的客户端 ID,比方说 "junk:tableId",我很难将其编码到函数中,
#{rich:component('junk:tableId')}.selectRow(0);
#{rich:component('junk:tableId')}.setActiveRow(0});
一切如我所愿。为了检索 clientId,我找到了 rich:clientId 函数,并确认 rich:clientId('tableId') returns 与我从 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')')}
这应该会让您遇到解析错误。单引号标记的是字符串,而不是方法参数。