论坛首页 Web前端技术论坛

GT-Grid 1.0 基础教程(七)

浏览 10879 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-07-23  
GT-Grid 1.0 基础教程(七)

教程说明:
这是一个告诉大家如何快速的利用GT-Grid开发列表的基础教程.以后会推出"高级教程".
查看其他教程,以及最新版本信息,请点击这里

第七章: 可编辑列表 之 删除记录 以及 数据提交

这章将主要讲解,如何删除记录 如何将编辑过的数据提到给服务端, 以及服务端要如何取得这些数据.
首先还是老套路,将"mydemo6.html"另存为"mydemo7.html".


=========================================


要将数据提交给服务端 首先要 指定grid提交数据的"目的地", 就是 saveURL, 同时还要在工具栏上添加一个保存按钮.



var gridConfig={
	/* ... 略去其他属性设置 ...*/
	saveURL : 'studentsSave.servlet',
	toolbarContent : 'nav | goto | pagesize | reload | save | state' 

};


toolbarContent中的 save 即标示 保存按钮
saveURL 指向的是后台对应的服务.

页面的改动只有这两处.
下面需要编写 服务端了, 在编写之前, 首先我们要了解, 客户端提交给服务端的数据格式和内容.

客户端提交的json串如下.
{
	action	 : 'save',	// 执行的操作.保存数据的操作为 save.

	insertedRecords : [
		/* ... 新增的记录. 是一个数组,数组的每个元素为一条记录(json-object) 下同... */
		 { no : 51 , name :'zxcx', age : 12, gender : 'M' , english : 26.5 , math :92 },
		 ... ...
	
	],
	updatedRecords : [
		/* ... 修改的记录 ... */
		{ no : 3 , name :'ccc', age : 12, gender : 'F' , english : 53   , math :62 },
		 ... ...
	],
	deletedRecords : [
		/* ... 删除的记录 ... */
		{ no : 2 , name :'bbb', age : 11, gender : 'F' , english : 89   , math :87 },
		... ...

	]
}


这些数据同样是以json串的形式一次性传给服务端.参数名依然是"_gt_json"
服务端就可以通过 "_gt_json" 来把这些数据从request中取出.( request.getParameter("_gt_json"); )
然后借助第三方工具来将json串 转换为 java对象.
本章可参考第5章,一并阅读.

在本例中, 将只有 action 和 updatedRecords 数据.

服务端得到 updatedRecords 对应的记录后, 就可以在dao里执行相应的操作了.



=========================================


数据的删除,也是一种很重要的操作. 要实现删除功能, 只需在 toolbarContent 里加入 "del".

var gridConfig={
	/* ... 略去其他属性设置 ...*/
	saveURL : 'studentsSave.servlet',
	toolbarContent : 'nav | goto | pagesize | reload | del | save | state' 

};


这时候预览页面 会看到多了一个"-"按钮, 该按钮即为删除按钮.
选中一行后, 点击删除按钮, 该记录将被打上"删除"标记.(灰色+删除线)
如果后悔了,或者是发现删除错了, 那么可以再次选中此行,然后再点删除按钮, 该行将会被回复.
(这个功能只有在 按save(保存)按钮之前才有效.

加入删除功能后, 提交的数据里 deletedRecords 下面就会有删除的记录信息.

然后还是 json串--->java对象的转换. 这里就不再累述.



=========================================


保存时有数据提交,自然也会有数据返回.
返回的数据同样是一个json串, 里面记载了 保存是否成功以及异常信息. json串的格式如下:

{
	success : true  , /* true/false */
	exception : "...异常信息..."
}


success 为false时 代表保存操作失败, 不设置或者是设置为其他值都表示成功.
失败时, 前台会弹出提示,提示里会显示 exception 对应的字符串.



=========================================



这章就先到这里, 内容少了点, 但是关于列表关键的核心最重要的内容, 我相信有一定使用纯ajax控件经验的人,应该已经可以独立开发出一个列表了.

第四五六七 4章讲解的内容更注重原理,而非实例,所以需要大家更多的动手实践.

欢迎大家就实践中出现的问题和不解与我进行交流.

这4章对应的"与服务端结合的完整示例" 将会在正式版发布时提供给大家.

同时 我也需要大家的帮助来进一步完善教程.

在这里对所有关注和使用GT-Grid的朋友说声 谢谢.


   发表时间:2008-07-23  
这次的教程简洁明了

赞一个
0 请登录后投票
   发表时间:2008-07-23  
你好 小胖先生,我正在用您帅气的GT-Grid做一个项目,但是为什么在保存和更新数据时总显示?号 输入一个字符就会显示一个?号(如:添加记录:小胖,显示出来就变成了??) 在jsp,servlet,mysql都设为utf-8了 昨天捣鼓了一晚上还是不行
我想神气的小胖先生一定会有办法的~~请小胖大人指点~~
0 请登录后投票
   发表时间:2008-07-23  
你好 小胖先生,我正在用您帅气的GT-Grid做一个项目,但是为什么在保存和更新数据时总显示?号 输入一个字符就会显示一个?号(如:添加记录:小胖,显示出来就变成了??) 在jsp,servlet,mysql都设为utf-8了 昨天捣鼓了一晚上还是不行
我想神气的小胖先生一定会有办法的~~请小胖大人指点~~
0 请登录后投票
   发表时间:2008-07-23  
打算死等在这里~~hoho 
0 请登录后投票
   发表时间:2008-07-23  
晕 就叫小胖好了 呵呵

如果你没有使用全 UTF-8 编码的话 建议你使用过滤器

如果你使用了全UTF-8编码的话 ,那么显然 你的 "全UFT-8编码" 做的还不彻底 呵呵

能否把你的 jsp发来看看?

另外 你的服务端是否有其他的编码过滤器 ? 那些过滤器有没有可能把编码转换了?
0 请登录后投票
   发表时间:2008-07-23  
没有使用过滤器。。。因为不会 正在努力学习中 我将jsp 和servlet都发给你看 请告诉我QQ好吗 或者邮箱
0 请登录后投票
   发表时间:2008-07-23  
这里的 站内短消息 支持附件
0 请登录后投票
   发表时间:2008-07-23  
先把问题完全描述一遍:
1。jsp里设 <%@ page language="java" pageEncoding="UTF-8"%>
2。servlet里设 request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
3。tomcat里设 URIEncoding="utf-8"
4.mysql 里设 utf8 -- UTF-8 Unicode

一个奇怪的问题就是:
String jsonSource = new String(request.getParameter("_gt_json").getBytes("utf-8"),"utf-8");
以后呢 System.out.print(jsonSource)是完全可以显示中文的(在Myeclipse中的console中) 我将jsonSource解析出来 变成 一条条sql语句存在hashmap中时,也能显示中文 我将这些sql语句直接粘贴到mysql中 也能正常显示中文 也能正常被GT-Grid提出来并显示出来。

有点罗嗦 请见凉
0 请登录后投票
   发表时间:2008-07-23  
如果 System.out.print(jsonSource) 里是中文 那么就不是编码问题了

应该与数据库有关 这个我也不是很清楚了
jdbc链接设置的问题???

引用

jdbc:mysql://localhost/pms?useUnicode=true&characterEncoding=utf8


试试?
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics