EXTJS4.x之grid(1)

       Grid表格是ExtJS的核心组件之一,它提供了展示强大数据的最佳途径。在ExtJS4.x中该组件经过了完全的重构,变得更加快速、轻便并且更容易进行定制。Grid组件的重要特性包括:智能渲染、标准布局、数据视图、特性支持、虚拟滚动和编辑改进。

        Grid控件和其它可以显示数据的控件,能够支持多种数据类型,如二维数组、Json数据和XML数据,甚至包括我们自定义的数据类型。Ext为我们提供了一个桥梁Ext.data.Store,通过它我们可以把任何格式的数据转化成grid可以使用的形式,这样就不需要为每种数据格式写一个grid的实现了。

        使用grid控件实现数据的增删改成将会变得非常容易,下面我们用一个实例来说明。这个实例是一个用户管理界面,使用grid控件实现用户表的增删改查功能,后台采用jsp编写,数据库使用mysql,开发工具用的是Sencha Architect和myeclipse

 

1.先编写jsp代码,实现数据库的增删改成功能。
打开myeclipse新建web project,在WebRoot目录下新建grid目录。在grid目录下新建一个userControl.jsp的文件。

<%@page import="org.json.simple.JSONObject"%>
<%@page import="org.json.simple.JSONArray"%>
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
<%
	Class.forName("com.mysql.jdbc.Driver").newInstance();
	Connection con=java.sql.DriverManager.getConnection("jdbc:mysql://localhost/数据库名?useUnicode=true&characterEncoding=utf-8","用户名","密码");
   	Statement stmt=con.createStatement();
   	PreparedStatement pstmt;
   	ResultSet rst;
   	JSONArray jsonArray;
   	JSONObject jsonObj;
   	
   	int cmd = Integer.parseInt(request.getParameter("cmd"));
   	switch(cmd){
   	//列出所有数据
   	case 0:
   		rst=stmt.executeQuery("select * from user");
	    jsonArray = new JSONArray();
	    while(rst.next())
	    {
	    	jsonObj = new JSONObject();
	    	jsonObj.put("userId", rst.getString("userId"));
	    	jsonObj.put("userName", rst.getString("userName"));
	    	jsonObj.put("passWord", rst.getString("passWord"));
	    	jsonArray.add(jsonObj);
	    }
	    out.println(jsonArray.toString());
	    rst.close();
	    stmt.close();
	    con.close();
   	break;
   	//插入一个用户信息
   	case 1:
   		String sql = "INSERT INTO user (user.userName,user.passWord) VALUES (?,?)";
   		pstmt = con.prepareStatement(sql);
   		pstmt.setString(1, request.getParameter("userName"));
   		pstmt.setString(2, request.getParameter("passWord"));
	    jsonObj = new JSONObject();
   		if(pstmt.executeUpdate()>0){
	    	jsonObj.put("susses", true);	
		    jsonObj.put("msg", "添加成功");
   		}else{
	    	jsonObj.put("susses", false);	
		    jsonObj.put("msg", "添加失败");
   		}
	    out.println(jsonObj.toString());
	    pstmt.close();
	    con.close();
   	break;
   	//删除一个用户信息
   	case 2:
   		pstmt = con.prepareStatement("DELETE FROM user WHERE userId = ?");
   		int id = Integer.parseInt(request.getParameter("userId"));
   		pstmt.setInt(1, id);
	    jsonObj = new JSONObject();
   		if(pstmt.executeUpdate()>0){
	    	jsonObj.put("susses", true);	
		    jsonObj.put("msg", "删除成功");
   		}else{
	    	jsonObj.put("susses", false);	
		    jsonObj.put("msg", "删除失败");
   		}
	    out.println(jsonObj.toString());
	    pstmt.close();
	    con.close();
   	break;
   	//查询用户信息
   	case 3:
   		pstmt = con.prepareStatement("select * FROM user WHERE userName like ?");
   		pstmt.setString(1, "%"+request.getParameter("userName")+"%");
   		rst=pstmt.executeQuery();
	    jsonArray = new JSONArray();
	    while(rst.next())
	    {
	    	jsonObj = new JSONObject();
	    	jsonObj.put("userId", rst.getString("userId"));
	    	jsonObj.put("userName", rst.getString("userName"));
	    	jsonObj.put("passWord", rst.getString("passWord"));
	    	jsonArray.add(jsonObj);
	    }
	    out.println(jsonArray.toString());
	    rst.close();
	    pstmt.close();
	    con.close();
   	break;
   	}
%>

保存之后启动tomcat,可以现在浏览器上面验证一下接口有没正常工作,这里不说了。

2.创建数据库myssh,里面创建user表,顺便加上几条记录吧如下

3.开Sencha Architect,新建extjs4.1x工程,保存到javaWeb工程下的WebRoot目录下,工程名为grid。在设计窗口放入一个Viewport,然后在Viewport里面放一个GridPanel,如下图

4.创建一个UserModel,在左边控件视图找找到models找到model把它拖动右边工程视图的models中,并把userClassName改为UserModel

5.为UserModel增加字段,找到UserModel的fields并添加以下字段,userId,userName,passWord。这些是我们userControl返回的json中的字段,我们将用来显示

6.创建UserStore,在左边控件视图找找到data找到Store把它拖动右边工程视图的Stores,并把userClassName改为UserStore

配置一下UserStore

model:配置为UserModel

autoLoad:打上勾(自动加载数据)

autoSync:也打上勾(自动同步)

proxy:添加一个ajaxProxy

                设置MyAjaxProxy

                                             url:配置为userControl.jsp?cmd=0

7.配置MyGridPanel

store:选择为UserStore

Columns:先删除再添加三个

 

分别设置这个三个column

text:用户ID,用户名,密码

dataindex:分别选择为userId,userName,passWord

8.保存工程,刷新一下javaWeb工程,然后重启tomcat,打开浏览器,输入地址为http://localhost:8080/ssh/grid/app.html。如无意外我们将会看到下图界面

 

 

可以看到数据已经出来了,下面我们来实现数据的增删改查

9.为了简单起见我们直接拉一个TextField和三个button到viewport上面,并做以下配置

TextField:设置id为keyWord,设置fieldLable为“关键字” ,labelWidth为60。

三个button分别设置他们的text为“添加用户”,“删除用户”,“查找用户”。预览如下图

 

算了,增删改查在下一篇再实现了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值