在ui-grid的beginCellEdit中,我想以编程方式点击单元格进行深度编辑。有没有一种方法可以让我在beginCellEdit事件处理程序中执行此操作?
我的beginCellEdit如下所示。
gridApi.edit.on.beginCellEdit($scope, function (rowEntity, colDef, newValue, oldValue) {
//method to invoke the click action
});
请告诉我。
答案 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');
});
};