以编程方式单击ui-grid中的单元格以进行深度编辑

时间:2017-09-15 17:26:20

标签: angular dynamic click cell ui-grid

在ui-grid的beginCellEdit中,我想以编程方式点击单元格进行深度编辑。有没有一种方法可以让我在beginCellEdit事件处理程序中执行此操作?

我的beginCellEdit如下所示。

 gridApi.edit.on.beginCellEdit($scope, function (rowEntity, colDef, newValue, oldValue) {

//method to invoke the click action

});

请告诉我。

1 个答案:

答案 0 :(得分:0)

通过单击已处于编辑模式的单元格启动深度编辑。

这将是一个肮脏的解决方法,但似乎有效。

您需要this answer中的一段代码,以及获取要点击的元素的方法。 我启用了ui-grid-cellNav,所以我的单元格有类:'ui-grid-cell-focus'我也使用jQuery,因为我还是加载了它。

$('.ui-grid-cell-focus').parent().find('form').children()[0]

我选择了单元格,然后我得到它的父元素,在其中找到一个表单元素并选择其中的第一个子元素,希望它不仅仅使用普通的输入框。

以下是整个事情。

function eventFire(el, etype) {
    if (el.fireEvent) {
        (el.fireEvent('on' + etype));
    } else {
        var evObj = document.createEvent('Events');
        evObj.initEvent(etype, true, false);
        el.dispatchEvent(evObj);
    }
} 

$scope.gridOptions.onRegisterApi = function (gridApi) {
    gridApi.edit.on.beginCellEdit($scope, function (rowEntity, colDef, newValue, oldValue) {
        eventFire($('.ui-grid-cell-focus').parent().find('form').children()[0], 'click');
    });
};