jQuery MiniUI

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

为什么DataGrid通过getChanges方法获取更改的数据总少一条 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2014-4-8 14:59:40 |只看该作者 |倒序浏览
现象如下,我修改了这个DataGrid三条数据,在捕捉调试是只看到两条修改的数据,如图:


为什么DataGrid通过getChanges总少一条?当修改一条的时候,总是获取不到修改的数据。请问这是什么问题?
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 1

沙发
发表于 2014-4-8 15:06:09 |只看该作者
代码如下:
  1. function SavePlan() {
  2.         form.validate();
  3.         if (form.isValid() == false) return;

  4.         grid.validate();
  5.         if (grid.isValid() == false) {
  6.             var error = grid.getCellErrors()[0];
  7.             grid.beginEditCell(error.record, error.column);
  8.             return;
  9.         }

  10.         debugger;
  11.         var planData = form.getData();
  12.         var paraChanges = grid.getChanges();

  13.         grid.loading("保存中,请稍后......");
  14.         $.ajax({
  15.             type: "post",
  16.             url: "@Url.Action("SaveOrUpdatePlan")",
  17.                 data: mini.encode({ plan: planData, parameters: paraChanges }),
  18.                 contentType: 'application/json',
  19.                 success: function (text) {
  20.                     if (text.ErrorCode == "00") {
  21.                         CloseWindow("save");
  22.                     } else {
  23.                         var msg = mini.decode(text);
  24.                         showOperationResult(msg);
  25.                     }
  26.                 },
  27.                 error: function () {
  28.                     CloseWindow();
  29.                 }
  30.             });

  31.         }
复制代码
HTML代码:
  1. <div class="mini-fit">
  2.                 <div id="dgTaskParameter" class="mini-datagrid" style="width: 100%; height: 100%;"
  3.                          url="@Url.Action("GetParameterByPlan")" idfield="Id"
  4.                          allowcelledit="true" allowcellselect="true" multiselect="true" allowcellvalid="true"
  5.                          allowCellValid="true" oncellvalidation="onCellValidation"
  6.                          emptyText="数据为空,<a href='javascript:addRow()'>增加一条</a>" showEmptyText="true"
  7.                          borderstyle="border:0;">
  8.                     <div property="columns">
  9.                         <div field="ParamName" headeralign="center" width="auto" name="ParamName">
  10.                             名称
  11.                                 <input property="editor" class="mini-textbox" width="auto" />
  12.                         </div>
  13.                         <div field="ParamValue" headeralign="center" width="auto" name="ParamValue">
  14.                             参数值
  15.                                 <input property="editor" class="mini-textbox" style="width: 100%;" />
  16.                         </div>
  17.                         <div type="checkboxcolumn" field="IsRequired" truevalue="1" falsevalue="0" headeralign="center" width="auto" name="IsRequired">是否必填</div>
  18.                         <div field="Des" headeralign="center" width="auto" name="Des">
  19.                             说明
  20.                                 <input property="editor" class="mini-textarea" style="width: 100%;" minheight="80" />
  21.                         </div>
  22.                         <div name="action" headeralign="center" align="center" renderer="onActionRenderer" cellstyle="padding:0;" width="auto">#</div>
  23.                     </div>
  24.                 </div>
  25.             </div>
复制代码

Rank: 8Rank: 8

板凳
发表于 2014-4-8 15:15:38 |只看该作者
benkey 发表于 2014-4-8 15:06
代码如下:HTML代码:

你确定222这个单元格有修改吗?
你把这个单元格失去焦点再SavePlan看看

Rank: 1

地板
发表于 2014-4-8 15:17:20 |只看该作者
felt 发表于 2014-4-8 15:15
你确定222这个单元格有修改吗?
你把这个单元格失去焦点再SavePlan看看

是更改过的,原来是22。

Rank: 8Rank: 8

5#
发表于 2014-4-8 15:50:22 |只看该作者
benkey 发表于 2014-4-8 15:17
是更改过的,原来是22。

你失去焦点的时候那个格子有红色小三角吗?
本地测试没发现你说的问题,能做一个重现的简单html页面,包括数据上传上来

Rank: 1

6#
发表于 2014-4-8 16:01:18 |只看该作者
felt 发表于 2014-4-8 15:50
你失去焦点的时候那个格子有红色小三角吗?
本地测试没发现你说的问题,能做一个重现的简单html页面,包 ...

是的,应该是一个未失去焦点,可是在单击按钮的时候,Grid的单元格应该就失去了焦点才是啊。

这个现象在IE8上存在这个问题,其他浏览器未出现这个问题。

那现在的问题是:我怎么在单击按钮的时候,失去单元格焦点呢?

Rank: 8Rank: 8

7#
发表于 2014-4-8 16:02:44 |只看该作者
benkey 发表于 2014-4-8 15:17
是更改过的,原来是22。

你贴的代码,我没法运行,只能用我本地的数据,发现没有问题

而且你的代码也不全面,不知道你的验证是什么处理的

你最好这样,数据用几条静态的,然后可以运行,并且重现问题之后,把页面上传上来

Rank: 1

8#
发表于 2014-4-8 18:24:34 |只看该作者
factory 发表于 2014-4-8 16:02
你贴的代码,我没法运行,只能用我本地的数据,发现没有问题

而且你的代码也不全面,不知道你的验证是什么处 ...

你可以多尝试下你们官方给出的例子,也有这个问题。有时可以取到,有时取不到,多试几次,就出现和我一样的现象。

测试环境:IE8

官方例子:http://www.miniui.com/demo/#src=datagrid/celledit.html

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

Rank: 8Rank: 8

9#
发表于 2014-4-9 09:44:38 |只看该作者
benkey 发表于 2014-4-8 18:24
你可以多尝试下你们官方给出的例子,也有这个问题。有时可以取到,有时取不到,多试几次,就出现和我一样 ...

你截的图对选中数据有何修改??

Rank: 1

10#
发表于 2014-4-9 10:42:49 |只看该作者
felt 发表于 2014-4-9 09:44
你截的图对选中数据有何修改??

1、进入这个网址:http://www.miniui.com/demo/#src=datagrid/celledit.html
2、在CellEdit 单元格编辑的Grid选择第一条数据的备注,起始为空,修改数据为wwww
3、修改备注数据为wwww后,不要单击其他任何地方,直接单击保存
4、查看保存结果,虽然提示成功,但数据还是原来的。

有时能保存成功,有时不能。
IE8下存在这样的现象。

Archiver|普加软件

GMT+8, 2025-7-18 16:53 , Processed in 1.053748 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部