`
rikugun
  • 浏览: 351208 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

封装一个jqGrid的数据源类

    博客分类:
  • JAVA
阅读更多
这2个月刚换单位,比较赶进度.很久不更新blog,今天抽空看了一下jqGrid,因为现在工作环境又迁到java了,但是是1.4的呵呵,所以封装了一个jqGrid的数据源,方便使用

ps: 需要json-simple 点我

package com.javaeye.rikugun.jqGrid;

import java.io.IOException;
import java.io.Writer;
import java.util.LinkedList;
import java.util.List;

import org.json.simple.JSONAware;
import org.json.simple.JSONObject;
import org.json.simple.JSONStreamAware;

/**
 * jqGrid 的数据源类
 * 
 * @author rikugun
 * 
 */
public class JqGridDataSource implements JSONAware, JSONStreamAware {

	private int records = 0;
	private int page = 0;
	private int total = 0;
	private List rows = new LinkedList();
	private JSONObject json = new JSONObject();

	/**
	 * 添加一行记录
	 * 
	 * @param row
	 *            输出的记录
	 * @return 当前数据源,方便链式写法 ds.add("a row").add("other row");
	 */
	public JqGridDataSource addRow(String row) {
		rows.add(row);
		return this;
	}

	/**
	 * 添加一行记录
	 * 
	 * @param obj
	 *            JSON对象,转换成字符串
	 * @return 当前数据源,方便链式写法 ds.add(obj1).add(obj2);
	 */
	public JqGridDataSource addRow(JSONObject obj) {
		rows.add(obj.toJSONString());
		return this;
	}
	/**
	 * 构造json对象
	 */
	private void build() {
		json.put("records", new Integer(records));
		json.put("page", new Integer(page));
		json.put("total", new Integer(total));
		json.put("rows", rows);
	}

	public int getRecords() {
		return records;
	}

	public void setRecords(int records) {
		this.records = records;
	}

	public int getPage() {
		return page;
	}

	public void setPage(int page) {
		this.page = page;
	}

	public int getTotal() {
		return total;
	}

	public void setTotal(int total) {
		this.total = total;
	}

	public List getRows() {
		return rows;
	}

	public void setRows(List rows) {
		this.rows = rows;
	}


	public String toJSONString() {
		build();
		return json.toJSONString();
	}

	public void writeJSONString(Writer out) throws IOException {
		build();
		json.writeJSONString(out);
	}

}



//usage
//..........
Map m = new LinkedHashMap();
m.put("name","rikugun");
m.put("phone","1323xxxxxxx");

JSONObject obj = new JSONObject();
obj.put("name","rikugun1");
obj.put("phone","1323xxxxxxx");

new JqGridDataSource ds = new JqGridDataSource();
ds.setPage(1);
ds.setTotal(1);
ds.add(JSONValue.toJSONString(m));
ds.add(obj);

System.out.println(ds.toJSONString());
//or

ds.writeJSONString(System.out);

//result  {"page":1,"total":1,"records":2,"rows":[{"name":"rikugun","phone":"1323xxxxxxx"},{"name":"rikugun1","phone":"1323xxxxxxx"}]}


回头有空再写个1.5的
0
0
分享到:
评论

相关推荐

    C#封装的JqGrid插件

    2. 创建Web服务或API:为了响应JqGrid的请求,你需要在C#中创建一个Web服务(如ASMX或WCF服务)或者API(如Web API)。这个服务将处理数据的检索、添加、更新和删除操作。 3. 配置JqGrid:在HTML页面中,使用jQuery...

    数据列表组件 jqGrid 二次封装

    对于动态加载数据的需求,我们可以封装一个函数,根据当前页数和每页数量从服务器获取数据,然后更新 jqGrid。 ```javascript function loadPageData(grid, page, rows) { var params = { page: page, rows: rows ...

    jqGrid .Net控件

    在.Net环境中,trirand.net为ASP.NET WebForms开发人员提供了一个封装好的jqGrid控件,使得在.NET平台上使用jqGrid变得更为便捷。 ### 1. trirand.net jqGrid .Net控件介绍 trirand.net的jqGrid .Net控件是将...

    jqGrid使用帮助[参照].pdf

    jQgrid 是一个功能强大且灵活的表格控件,能够将数据动态地展示在网页上,并提供了丰富的编辑、增删查改、分类显示等功能。下面是对 jQgrid 的详细介绍: jQgrid 包说明 jQgrid 主要由以下几个包组成: 1. jquery...

    jqGrid-master

    jqGrid 是一个强大的JavaScript库,专门用于在Web页面上创建交互式的数据表格。这个"jqGrid-master"压缩包是该库的最新版本,从官方英文站点下载,为用户提供了便捷的获取途径。jqGrid主要用于展示和操作数据,尤其...

    JqGrid Demo json

    在实际应用中,JqGrid的配置通常包括定义列信息、设置数据源和加载参数等。例如,你可以设定每列的标题、宽度、是否可排序等属性,通过`colModel`参数来定义。同时,使用`url`参数指定获取数据的服务器端接口,并...

    jqgrid开发包

    - **初始化**:在JavaScript中初始化jqGrid,设置数据源、列信息等参数。 3. **基本使用示例** ```html <table id="grid"></table> <div id="pager"></div> ``` ```javascript $(document).ready(function ...

    $("#list").jqGrid('clearGridData');

    `$("#list")`是jQuery的选择器,用于选取ID为`list`的DOM元素,这通常是一个表格元素(`<table>`),在jqGrid中,它被用来封装数据网格。调用`jqGrid`函数实际上是将这个DOM元素转换为jqGrid实例,从而可以利用...

    ASP.NET MVC JQGRID 增删改查 实例

    JQGrid的数据源可以是JSON或XML格式,这与ASP.NET MVC的RESTful服务非常契合。 **三、创建模型(Model)** 首先,我们需要定义一个模型类,比如`Employee`,包含员工的基本信息字段,如ID、姓名、职位等。这个模型...

    jqgrid+struts2实现的增删改查

    4. **配置 jqGrid**:在HTML页面中,引入jqGrid的JavaScript和CSS文件,然后使用jQuery初始化jqGrid,设置列名、数据源、操作按钮等参数。 5. **AJAX通信**:利用jQuery的AJAX方法,向服务器发送请求获取数据或提交...

    jqgrid and java

    这里,`JqGridParam` 是一个封装了 jqGrid 请求参数的类,`getData()` 方法根据参数查询数据并返回 JSON 格式的结果。 ### 注意事项: 1. **版本兼容**:确保所使用的 jqGrid 版本与 jQuery 版本兼容。 2. **安全...

    jqGrid_API中文

    然后,你需要创建一个HTML表格元素,并为其添加`id`属性,这将是jqGrid的容器。 ```html <table id="grid"></table> <div id="pager"></div> ``` ### 2. 初始化jqGrid 使用JavaScript初始化jqGrid,设置数据源、...

    jstl4jqgrid

    另一方面,jqGrid是一个流行的JavaScript数据网格插件,用于展示和操作大量结构化数据,提供了丰富的功能,如排序、分页、搜索、编辑等。 标题"jstl4jqgrid"暗示我们将探讨如何利用JSTL来封装和简化jqGrid的使用。...

    jqGrid使用帮助

    jqGrid 支持多种数据源格式(如 JSON、XML),并且提供了丰富的功能,包括但不限于排序、分页、搜索、编辑等。 - **jquery.js**:这是 jQuery 库的核心文件,所有的 jqGrid 功能都基于此库实现。 - **jquery.jqGrid...

    Bootstrap嵌入jqGrid,使你的table牛逼起来

    3. **jqGrid在Bootstrap中的模块化**:为了保持代码的整洁和可维护性,通常会将jqGrid的相关配置和脚本封装在一个单独的JS文件中。例如,可以创建一个`my_pay_list.js`文件,初始化表格、设置事件监听器以及处理数据...

    jquery jqGridASPNET_MVC_3_8_1_0.zip

    你可以创建一个模型类来代表jqGrid要显示的数据实体。 四、jqGrid高级特性 - 表格操作:jqGrid支持行选择、编辑、添加、删除等操作,可以实现复杂的数据交互。 - 自定义列:你可以自定义列的显示样式、编辑模式、...

    ssm按条件实现后台分页

    假设我们有一个`User`实体类,包含如id、name、email等属性,这些属性将作为查询条件。 3. **设计Mapper接口和XML文件**: 创建`UserMapper`接口,定义一个按条件分页查询的方法,例如`List<User> ...

    ASP.NET MVC+EF6+Bootstrap开发C#源代码

    数据权限(精细化数据权限控制,控制到行级,列表级,表单字段级,实现不同人看不同数据,不同人对同一个页面操作不同字段 兼容目前最流行浏览器(IE8+、Chrome、Firefox、360浏览器) 1、前端技术 JS框架:...

    jeesite后台框架

    支持多数据源,简单properties配置即可实现,为了安全性吧,暂不提供界面维护数据源,不存数据库。 数据表主键优化,如分类科目表,采用有意义的主键方式,让客户去自定义,减少后期运维维护成本。 实体@Table注解...

Global site tag (gtag.js) - Google Analytics