首页 > 解决方案 > Primefaces扩展表组件按“Enter”键将焦点移动到右侧的单元格

问题描述

按介绍时handsontable的默认操作是将单元格聚焦在底部,但在primefaces扩展中焦点向右,我需要转到底部,有什么配置可以尝试吗?

我尝试使用 updateSettings 方法修改 afterChange 事件,但不起作用。

在JSF方式的工作表代码下方。

<pe:sheet extender="sheetExtender" id="sheet" contextMenu="true"
                    rowHeader="true" colHeader="true" widgetVar="sheetWidget"
                    var="_det" rowKey="#{_det.item}" height="300" showRowHeaders="true"
                    value="#{ordenSuministroController.detalles}"
                    readOnly="#{ordenSuministroController.instance.estado!='PENDIENTE'}"
                    converter="#{ordenSuministroDetConverter}"
                    emptyMessage="No se encontraron registros." locale="es-MX"
                    maxCols="5" minCols="5" movableCols="false" movableRows="true">
                    <f:facet name="header">
                        <strong>HEADER</strong>
                    </f:facet>
                    <pe:sheetcolumn headerText="Descripcion" required="true"
                        readOnly="#{ordenSuministroController.instance.estado!='PENDIENTE'}"
                        value="#{_det.descripcion}" colType="text"></pe:sheetcolumn>
                    <pe:sheetcolumn headerText="Unidad" value="#{_det.unidad}"
                        readOnly="#{ordenSuministroController.instance.estado!='PENDIENTE'}"
                        colType="text"></pe:sheetcolumn>
</pe:sheet>

Primefaces v7.0 Primefaces-extension v7.0.1

标签: jsfprimefaceshandsontableprimefaces-extensions

解决方案


根据 HandsonTable 文档,您可以使用该enterMoves功能来控制输入键如何移动单元格。见:https ://github.com/handsontable/handsontable/issues/4531

然后在 Sheet Extender 代码中,您可以简单地执行Showcase示例中的“扩展器”功能,并将扩展器更改为:

function sheetExtender() { 
   this.cfg.enterMoves = {row: 1, col: 0}; 
}

推荐阅读