jQuery MiniUI

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

请教,关于datagrid的updateRow方法 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2015-7-9 10:17:05 |只看该作者 |倒序浏览
请教下,目前用的是最新的版本3.6。执行datagrid.updateRow(r, data);的时候,比如row有两列code和name,更新前row的数据是{code:'123', name:'123'}。行编辑后把name的数据删掉,data的数据是{code:'123'},执行了这个方法后,r的name竟然没有被刷掉,还是保留原来的'123'。
请教下怎么解决。之前的版本(好像是3.2吧)似乎没有这个问题。

Rank: 8Rank: 8

沙发
发表于 2015-7-9 10:38:04 |只看该作者
你updateRow可以更新了什么,name字段没处理的话为什么要删掉

Rank: 2

板凳
发表于 2015-7-9 11:55:37 |只看该作者
dforce 发表于 2015-7-9 10:38
你updateRow可以更新了什么,name字段没处理的话为什么要删掉

我是后台保存的,可以更新,但是后台没传过来的值,经过updateRow之后不会设空。因为把页面操作把name的值设置为'',数据库更新后就把name设空了。那么经过json拼装之后,空字符串的值不会回传回来。就出现了以上问题,请问可以解决吗?

Rank: 8Rank: 8

地板
发表于 2015-7-9 12:19:00 |只看该作者
huanghk 发表于 2015-7-9 11:55
我是后台保存的,可以更新,但是后台没传过来的值,经过updateRow之后不会设空。因为把页面操作把name的 ...

不清白你的意思
请提供示例

Rank: 2

5#
发表于 2015-7-9 12:24:39 |只看该作者
dforce 发表于 2015-7-9 12:19
不清白你的意思
请提供示例

实际例子就是一个表格,只有两列,编号(code)和名称(name),行编辑,都是textfield。
一开始的时候编号和名称都输入"123",服务器保存,返回的data是{code:'123', name:'123'}。执行updateRow(r, data),没有问题。
再次进入行编辑,把名称的textfield清空不填,服务器保存,返回的data是{code:'123'}。执行updateRow(r, data),发现那行数据的名称一列还是显示'123',刷新了才没有。

Rank: 8Rank: 8

6#
发表于 2015-7-9 13:30:08 |只看该作者
huanghk 发表于 2015-7-9 12:24
实际例子就是一个表格,只有两列,编号(code)和名称(name),行编辑,都是textfield。
一开始的时候编 ...

请提供具体的例子
都是什么编辑器,是你调用的update还是内部执行的更新

Rank: 2

7#
发表于 2015-7-9 13:35:09 |只看该作者
dforce 发表于 2015-7-9 13:30
请提供具体的例子
都是什么编辑器,是你调用的update还是内部执行的更新

具体例子代码太多,没办法贴出来喔。
编辑器就是普通行编辑,grid.beginEditRow(r);
ajax进行服务器保存后,返回的data数据,执行grid.updateRow(r, data);
就只是这样而已。问题其实出在grid.updateRow这个方法,如果data里面没有name这一列的数据,就不会update。

Rank: 8Rank: 8

8#
发表于 2015-7-9 13:39:12 |只看该作者
huanghk 发表于 2015-7-9 13:35
具体例子代码太多,没办法贴出来喔。
编辑器就是普通行编辑,grid.beginEditRow(r);
ajax进行服务器保存后 ...

你可以做过简单的例子来重新,不需要你进行什么交互,静态数据模拟就行

Rank: 2

9#
发表于 2015-7-9 14:20:21 |只看该作者
dforce 发表于 2015-7-9 13:39
你可以做过简单的例子来重新,不需要你进行什么交互,静态数据模拟就行 ...

我跟踪代码到最后就是发现这个问题,应该是你们的updateRow方法如果没有对应列的数据,就不把该列刷空。那有什么方法可以把整行数据清空然后重新设置吗,除了remove。

Rank: 8Rank: 8

10#
发表于 2015-7-9 14:50:02 |只看该作者
huanghk 发表于 2015-7-9 14:20
我跟踪代码到最后就是发现这个问题,应该是你们的updateRow方法如果没有对应列的数据,就不把该列刷空。 ...

不会清空,只会更新你需要更新的字段,其他字段肯定不会处理的

Archiver|普加软件

GMT+8, 2025-7-27 16:17 , Processed in 1.064181 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部