jQuery MiniUI

 找回密码
 立即注册
查看: 4341|回复: 5
打印 上一主题 下一主题

DataGrid的Cell编辑状态下,键盘事件无响应问题 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2019-2-26 16:06:45 |只看该作者 |倒序浏览
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>

Rank: 8Rank: 8

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

Rank: 1

板凳
发表于 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数据后,点击弹窗页面确定后,选取的是另外的行。请问这个该如何解决?谢谢界面效果如上传的图片
错误的效果如:

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

地板
发表于 2019-2-27 09:00:57 |只看该作者
fullhappy 发表于 2019-2-26 23:14
启用Excel编辑模式代码:navEditMode="true",同时我取消了代码(editNextRowCell="true"),这样就不冲突 ...

这个选中并不会改变选中行,请按当前编辑单元格获取行来进行更新

Rank: 1

5#
发表于 2019-2-27 09:16:58 |只看该作者
felt 发表于 2019-2-27 09:00
这个选中并不会改变选中行,请按当前编辑单元格获取行来进行更新

能用js代码来完成这个行同步变更吗,谢谢。
这样对于grid弹窗选取就比较适合了

Rank: 8Rank: 8

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

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

Archiver|普加软件

GMT+8, 2024-11-28 16:40 , Processed in 1.046617 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部