PrimeFaces 具有出色的键盘支持。例如,请参见selectablep:dataTable
的展示。当您单击“单次单击行”表中的一行时,您可以使用箭头键导航行并使用回车键选择焦点行。
我希望能够p:dataTable
使用 JavaScript 将焦点设置在(单个)可选择的行上。
我检查了客户端 API 文档DataTable
和行单击处理程序的代码,我认为它与originRowIndex
andcursorIndex
属性有关。但是将它们设置为0
(在 JavaScript 控制台中)不会触发焦点。此外,当我聚焦一行,然后聚焦 JavaScript 控制台时,焦点会丢失,因此很难弄清楚发生了什么。
然后我检查了keydown 处理程序的代码。这让我尝试了以下操作(再次在控制台上):
var widget = PF('widget');
row = $('tbody tr', widget.jq).eq(0);
widget.focusedRow = row;
widget.highlightFocusedRow();
row.focus();
这将突出显示第一行,但未设置焦点。我想我已经很接近了,但仍坚持焦点问题。