jQuery MiniUI

标题: DataGrid的Cell编辑状态下,键盘事件无响应问题 [打印本页]

作者: fullhappy    时间: 2019-2-26 16:06:45     标题: DataGrid的Cell编辑状态下,键盘事件无响应问题

DataGrid的Cell编辑状态下,(数量列直接处于编辑状态),使用键盘的Up ArrowDw Arrow,都没有任何反应。

<div id="List" class="mini-treegrid" style="width:100%;height:100%;" showTreeIcon="true" treeColumn="AssetName"
idField="ID" parentField="ParentID" multiSelect="false" resultAsTree="false" expandOnLoad="false" virtualScroll="true"
allowCellWrap="true" allowCellEdit="true" editNextOnEnterKey="true">
<div property="columns">
  <div field="check" type="checkcolumn"></div>
  <div name="AssetName" field="AssetName" width="100px" headerAlign="center" allowSort="true">易耗品名称</div>
  <div field="Brand" width="70px" headerAlign="center" allowSort="true">品牌</div>
  <div field="GSpecial" width="70px" headerAlign="center" allowSort="true">型号</div>
  <div field="Num" width="50px" headerAlign="center">数量</div>
  <div field="Total" width="70px" headerAlign="center">金额</div>
  </div>
</div>

<script type="text/javascript">
  mini.parse();var ListGrid = mini.get("List");
  ListGrid.loadList( [{AssetName:"1",Brand:"",GSpecial:"",Num:1,Total:10}], "ID", "ParentID");
  var sorter = new TreeSort(ListGrid);

  ListGrid.on("cellmousedown",function(e){   var record=e.record,column = e.column;
    if (column.name == "Num") {
    if (e.keyCode == 38) {
      alert("向上键");
    }
    if (e.keyCode == 40) {
      alert("向下键");
    }
   }
  });

  ListGrid.focus();  var Cell=[0,4];  var cellrow = ListGrid.getRow(0);
  var cellcolumn = ListGrid.getColumn(4);
  ListGrid.setCurrentCell([cellrow, cellcolumn]);
  ListGrid.beginEditCell();
</script>


作者: felt    时间: 2019-2-26 17:46:01

你绑定的是鼠标事件,不是键盘事件,我们表格内键盘导航已经做过了处理,你另外处理的会和我们默认处理有冲突的。
可以看一下我们excel编辑模式的导航
http://www.miniui.com/demo/#src=datagrid/exceledit.html
作者: fullhappy    时间: 2019-2-26 23:14:40

本帖最后由 fullhappy 于 2019-2-26 23:26 编辑
felt 发表于 2019-2-26 17:46
你绑定的是鼠标事件,不是键盘事件,我们表格内键盘导航已经做过了处理,你另外处理的会和我们默认处理有冲 ...

启用Excel编辑模式代码:navEditMode="true",同时我取消了代码(editNextRowCell="true"),这样就不冲突。但是有个问题:
1. 键盘向上 向下之后,当前行选取没有变化;导致我修改了某CELL数据后,点击弹窗页面确定后,选取的是另外的行。请问这个该如何解决?谢谢界面效果如上传的图片[attach]11976[/attach]
错误的效果如:[attach]11977[/attach]


作者: felt    时间: 2019-2-27 09:00:57

fullhappy 发表于 2019-2-26 23:14
启用Excel编辑模式代码:navEditMode="true",同时我取消了代码(editNextRowCell="true"),这样就不冲突 ...

这个选中并不会改变选中行,请按当前编辑单元格获取行来进行更新
作者: fullhappy    时间: 2019-2-27 09:16:58

felt 发表于 2019-2-27 09:00
这个选中并不会改变选中行,请按当前编辑单元格获取行来进行更新

能用js代码来完成这个行同步变更吗,谢谢。
这样对于grid弹窗选取就比较适合了
作者: felt    时间: 2019-2-27 09:43:44

fullhappy 发表于 2019-2-27 09:16
能用js代码来完成这个行同步变更吗,谢谢。
这样对于grid弹窗选取就比较适合了 ...

从你的截图未看到弹窗和表格有什么关系,请提供重现问题的简单html页面。
回复高级模式,可以上传文件




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2