在grid中放可编辑组件gridSelect时,平台默认的需点击两次才可以把焦点定位到gridSelect中并显示下拉
可以参考下面的方案实现点击一次就定位到gridSelect中并显示下拉
grid点击会触发onRowClick事件,可以先判断点击的是不是gridSelect所在的列,然后操作gridSelect,具体如下:
Model.prototype.mainGridRowClick = function(event){ var grid = event.source; var rowID = event.rowID; var td = event.domEvent.target;//获取触发事件的dom节点 if(td.tagName.toUpperCase()!='TD') {//当grid的列中放了input等组件时,获取的当前元素不是td td = $(td).closest('td')[0];//获取到对应td } var index = $.jgrid.getCellIndex(td);//获取列索引 var colDef = event.source.getColDef(index);//获取列定义 var gridselect = this.comp("gridSelect2"); if(colDef.name == 'fCode'){//判断是不是gridselect所在的列 setTimeout(function() { var cell = grid.getCell(rowID, "fCode"); grid.editCell(cell); $(td).find("input").focus();//把焦点设置到gridSelect的编辑框中 gridselect.showOption();//显示gridSelect的下拉项 }, 5); } };
评一波