作者:晴活的比较迷-茫m | 来源:互联网 | 2023-07-08 10:05
现在项目中一直在有关extjs中的东西,一直想记录下做项目过程中的一些问题以及问题的解决,也算是一种笔记,方便自己以后查看,也能提供给遇到相同问题的人一种解决方式。问题:Extjs中grid增加数
现在项目中一直在有关extjs中的东西,一直想记录下做项目过程中的一些问题以及问题的解决,也算是一种笔记,方便自己以后查看,也能提供给遇到相同问题的人一种解决方式。
问题:Extjs中grid增加数据(更新,删除)数据后,如何更新到数据库?
解决方式很简单,只要能够把更新的记录以json的方式传递到后台,后台反序列化为更新的对象就可以了。关键是前台如何序列化,后台如何反序列化。忘了说了,我的后台是用的asp.net中的一般处理程序。因为是个例子,写的比较简单,先看看预览图片,
更新了姓名,点击保存,传递到后台
前台代码如下:
"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
"http://www.w3.org/1999/xhtml">
"http://www.cnblogs.com/Ext/resources/css/ext-all.css" rel="stylesheet" type="text/css" />
"http://www.cnblogs.com/Ext/resources/css/icon.css" rel="stylesheet" type="text/css" />
"http://www.cnblogs.com/Ext/resources/css/icon.css" rel="stylesheet" type="text/css" />
主要是保存按钮中的事件,页面引用了jquery中一个json插件,可以把js对象转换为json字符串,这样后台也就可以接收到转换后的字符串了。
后台的代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
namespace MyExtjsExample.Handler
{
///
/// Summary description for updategrid
///
public class updategrid : IHttpHandler
{
JavascriptSerializer js = new JavascriptSerializer();
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string strdata = context.Request["data"];
var obj = js.Deserialize(strdata);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
代码中使用了JavascriptSerializer的反序列化方法,同样的,如果需要序列化对象传递到前台,也是可以的
类UserInfo代码如下,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
public class UserInfo
{
public string id { get; set; }
public string username { get; set; }
public int age { get; set; }
public string sex { get; set; }
public string birthday { get; set; }
public string classname { get; set; }
}
前台代码中也有一些小的技巧和方法,日期字段在grid中的格式化,下拉框在grid中的使用,如何得到grid中新增加的记录,更改的记录,删除记录,都是可以以后学习借鉴的