jQuery MiniUI

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

datagrid 的状态控制 [复制链接]

Rank: 4

跳转到指定楼层
楼主
发表于 2014-1-27 16:01:45 |只看该作者 |倒序浏览
在datagrid 上, 添加了若干行,

触发ajax 保存时,是提交一个数组给服务端, 数组中没有 主键id ,每一行的_state = "added".

问题是:
1.服务端insert 完毕后,客户端有没语句,能够一句话复位 所有的 _state ,否则会导致重复insert.

2. 主键如果是在服务端生成,怎么再写回到客户端的grid 数组中?

Rank: 8Rank: 8

沙发
发表于 2014-1-27 16:19:40 |只看该作者
保存之后执行grid.reload()刷新,刷新之后,等于是从数据库中读取数据,_state只有增删改的数据有,没做操作的,不会有

Rank: 4

板凳
发表于 2014-1-27 17:01:27 |只看该作者
这法子靠谱么?
明明客户端已经有数据了,非要从服务端再读取一次?

采用 jquery + ajax 交互模式,目的就是为了减少前后台交互,增强抗压能力啊。

Rank: 8Rank: 8

地板
发表于 2014-1-27 17:21:05 |只看该作者
wslfriend 发表于 2014-1-27 17:01
这法子靠谱么?
明明客户端已经有数据了,非要从服务端再读取一次?

你在前台增加的数据,就是前台的数组里面数据,不刷新,你这条数据永久就是前台增加的,_state当然还会存在. 而且你在服务端生成的一些主键之类的,保存到数据库,对客户端来说,你不返回修改后的数据给他,如何得知你后台对数据做了哪些操作? 这又不是服务端控件.

Rank: 4

5#
发表于 2014-1-28 17:25:17 |只看该作者
.Reload() 的方法肯定不可取。

那么,有没有什么标准做法么?
目前我的做法是在  ajax.Success() 中
for 循环手动 清空 _state 和给主键列赋值。
不知道这方式是否可取

Rank: 8Rank: 8

6#
发表于 2014-2-7 09:20:34 |只看该作者
wslfriend 发表于 2014-1-28 17:25
.Reload() 的方法肯定不可取。

那么,有没有什么标准做法么?

怎么就不可取呢?

那你这种做法,一些后台生成的字段,比如id等等,你如果按照你这样的做法的话,如何在前台的数据中获取?

Rank: 4

7#
发表于 2014-2-17 09:16:09 |只看该作者
我最后的解决方式:
主键在客户端生成,用js 生成GUID。

保存完毕后,遍历grid 的数据,手工把_state 清空。

Rank: 8Rank: 8

8#
发表于 2014-2-17 09:35:37 |只看该作者
wslfriend 发表于 2014-2-17 09:16
我最后的解决方式:
主键在客户端生成,用js 生成GUID。

GUID一般都在后台生成,而且你这种做法完全没必要,你现在就一个GUID是在前台生成的,那我就是需要在后台生成一些相关的信息呢?比如我再从另一张表中查一些东西,插入到这条数据中的? 你再把查得的数据从后台返回到前台?

我真搞不懂你为什么要这么麻烦. 遍历循环数据过多也是需要开销的. 还没有一次reload来的方便. 而且表格的单元格编辑,多次操作一次保存,也就刷新一次,哪里来你说的那么多问题

Archiver|普加软件

GMT+8, 2025-7-8 15:18 , Processed in 1.048941 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部