`
tanlingcau
  • 浏览: 138141 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jqGrid:三、 remote data(XML)

阅读更多
新建页面jqgrid_xml.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>grid.html</title>
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3" />
        <meta http-equiv="description" content="this is my page" />
        <meta http-equiv="content-type" content="text/html; charset=UTF-8" />

        <link rel="stylesheet" type="text/css" media="screen"
            href="css/themes/redmond/jquery-ui-1.8.2.custom.css" />
        <link rel="stylesheet" type="text/css" media="screen"
            href="css/themes/ui.jqgrid.css" />
        <link rel="stylesheet" type="text/css" media="screen"
            href="css/themes/ui.multiselect.css" />
        <link rel="stylesheet" type="text/css" media="screen"
            href="css/themes/jquery.searchFilter.css" />
        <style>
html,body {
    --margin: 0; /* Remove body margin/padding */
    padding: 0;
    overflow: hidden; /* Remove scroll bars on browser window */
    font-size: 75%;
}
</style>

        <script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>
        <script src="js/jquery-ui-1.8.2.custom.min.js" type="text/javascript"></script>
        <script src="js/src/ui.multiselect.js"
            type="text/javascript"></script>
        <script src="js/src/grid.loader.js" type="text/javascript"></script>
        <script type="text/javascript">
            $.jgrid.no_legacy_api = true;
            $.jgrid.useJSON = true;
        </script>
        <script type="text/javascript">
            $(function(){ 
              var lastSel;
              $("#grid_id").jqGrid({
                url:'/demo2/servlet/JqGridXmlServlet',
                mtype: 'GET',
                datatype: 'xml',
                height: "auto",
                loadui: "disable",
                colNames:['Inv No','Date', 'Amount','Tax','Total','Notes'],
                colModel :[ 
                  {name:'invid', index:'invid', width:70}, 
                  {name:'invdate', index:'invdate', width:120, editable:true}, 
                  {name:'amount', index:'amount', width:90, align:'right', editable:true}, 
                  {name:'tax', index:'tax', width:90, align:'right', editable:true}, 
                  {name:'total', index:'total', width:90, align:'right', editable:true}, 
                  {name:'note', index:'note', width:180, sortable:false, editable:true} 
                ],
                pager: '#pager',
                rowNum:10,
                rowList:[10,20,30],
                sortname: 'invid',
                sortorder: 'asc',
                viewrecords: true,
                caption: 'My first grid'
              });
            }); 
        </script>
    </head>
    <body>
        <table id="grid_id"></table>
        <div id="pager"></div>
    </body>
</html>

和前一个页面的区别主要在
 url:'/demo2/servlet/JqGridXmlServlet',
                mtype: 'GET',
                datatype: 'xml',


servlet代码(源码在下篇给出)
package com.qoma.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.et.ar.exception.ActiveRecordException;
import com.qoma.db.vo.InvHeader;
import com.qoma.service.InvHeaderService;

public class JqGridXmlServlet extends HttpServlet {

    /**
     * 
     */
    private static final long serialVersionUID = 6726805149005750238L;

    private InvHeaderService service = new InvHeaderService();

    /**
     * Constructor of the object.
     */
    public JqGridXmlServlet() {
        super();
    }

    /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    /**
     * The doGet method of the servlet. <br>
     * 
     * This method is called when a form has its tag value method equals to get.
     * 
     * @param request
     *            the request send by the client to the server
     * @param response
     *            the response send by the server to the client
     * @throws ServletException
     *             if an error occurred
     * @throws IOException
     *             if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }

    /**
     * The doPost method of the servlet. <br>
     * 
     * This method is called when a form has its tag value method equals to
     * post.
     * 
     * @param request
     *            the request send by the client to the server
     * @param response
     *            the response send by the server to the client
     * @throws ServletException
     *             if an error occurred
     * @throws IOException
     *             if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/xml");
        PrintWriter out = response.getWriter();

        Integer page = Integer.parseInt(request.getParameter("page"));
        Integer limit = Integer.parseInt(request.getParameter("rows"));
        String sidx = request.getParameter("sidx");
        String sord = request.getParameter("sord");

        String s = "";

        if (null == sidx || "".equals(sidx))
            sidx = "1";

        Long count = 0L;
        try {
            count = service.getCount();
        } catch (ActiveRecordException e) {
            e.printStackTrace();
        }
        Integer total_pages = 0;
        if (count > 0 && limit > 0) {
            total_pages = new Long(count / limit).intValue();
                if (count % limit != 0) {
                    total_pages += 1;
                }
        } else {
            total_pages = 0;
        }

        // if for some reasons the requested page is greater than the total
        // set the requested page to total page
        if (page > total_pages)
            page = total_pages;

        // calculate the starting position of the rows
        Integer start = limit * page - limit;

        if (start < 0)
            start = 0;

        s = "<?xml version='1.0' encoding='utf-8'?>";
        s += "<rows>";
        s += "<page>" + page + "</page>";
        s += "<total>" + total_pages + "</total>";
        s += "<records>" + count + "</records>";

        // be sure to put text data in CDATA
        List<InvHeader> list;
        try {
            list = service.getLimitList(start, limit, sidx, sord);
            for (InvHeader vo : list) {
                s += "<row id='" + vo.invId + "'>";
                s += "<cell>" + vo.invId + "</cell>";
                s += "<cell>" + vo.invDate + "</cell>";
                s += "<cell>" + vo.amount + "</cell>";
                s += "<cell>" + vo.tax + "</cell>";
                s += "<cell>" + vo.total + "</cell>";
                s += "<cell><![CDATA[" + vo.note + "]]></cell>";
                s += "</row>";
            }
        } catch (ActiveRecordException e) {
            e.printStackTrace();
        }
        s += "</rows>";

        out.println(s);
        out.flush();
        out.close();
    }

    /**
     * Initialization of the servlet. <br>
     * 
     * @throws ServletException
     *             if an error occurs
     */
    public void init() throws ServletException {
        // Put your code here
    }

}

注意:
response.setContentType("text/xml");
分享到:
评论

相关推荐

    jqGrid:四、 remote data(JSON)

    **jqGrid:四、远程数据(JSON)** jqGrid是一个强大的JavaScript库,专门用于创建交互式的HTML表格。它能够从服务器获取数据,并将其呈现为可排序、可搜索、可分页的网格。在本篇文章中,我们将深入探讨jqGrid如何...

    jqGrid:六、 search

    **jqGrid:六、search** jqGrid是一款强大的jQuery插件,用于创建交互式的网格视图。在本章节中,我们将深入探讨jqGrid的搜索功能,它允许用户在数据网格中快速定位和过滤所需的信息。 首先,jqGrid的搜索功能提供...

    jqGrid使用XML數據源例子

    jqGrid是一款功能强大的JavaScript表格插件,用于在网页上展示和操作数据,它支持多种数据源,包括JSON、XML、CSV等。在这个“jqGrid使用XML數據源例子”中,我们将探讨如何配置jqGrid来从XML文件中获取并显示数据。...

    jqgrid:我在 github 上的第一个存储库

    这个项目在 GitHub 上的标题“jqgrid:我在 github 上的第一个存储库”表明它是一个学习和示例(jqgrid)的资源,作者可能是初次将代码托管在 GitHub 上。描述中的“网格”一词进一步确认了这与数据表格展示有关,而...

    jqGrid v3.3.1 jQuery Data Grid

    **jqGrid v3.3.1 jQuery Data Grid** jqGrid是一款强大的jQuery插件,用于创建功能丰富的数据网格,它在Web开发中扮演着至关重要的角色。这个组件以其易用性和灵活性而著称,使得开发者能够快速构建数据密集型的...

    jqgrid非常简单的例子,读取本地简单的XML,还有IE下的firebug调试工具

    本例子将展示如何使用jqGrid从本地XML文件中读取数据并显示在一个表格中。 首先,我们来看`index.html`或`testjq.html`这两个HTML文件,它们是网页的主体部分。通常,这两个文件会包含jqGrid所需的CSS和JS文件引用...

    jqGrid详解及高级应用

    4. 配置jqGrid:通过JavaScript代码初始化jqGrid,并进行配置以符合页面需求。 jqGrid提供了四种取数据的方式,这包括: 1. 通过XML数据获取:后端提供XML格式的数据源,jqGrid通过配置相应的xmlReader来解析这些...

    jqgrid 导出成为 JSON, XML, CSV, TSV, TXT, SQL, Word, Excel, PNG,PDF格式

    在本场景中,我们将探讨如何使用 jqGrid 导出数据到 JSON, XML, CSV, TSV, TXT, SQL, Word, Excel, PNG, PDF 等格式。 1. **JSON**: JavaScript Object Notation,是一种轻量级的数据交换格式,易于人阅读和编写,...

    jqGrid(版本:5.1.0)

    - **数据源支持**:jqGrid支持多种数据源,如JSON、XML、CSV、HTML,甚至可以与服务器端API进行AJAX交互。 - **自定义列**:你可以自由定义列的显示样式,包括宽度、对齐方式、可编辑性等,并可以设置列的排序和过滤...

    jqGrid:jQuery网格插件

    jqGrid jQuery网格插件jqGrid是启用AjaxJavaScript控件,它提供用于表示和处理Web上表格数据的解决方案。 由于网格是客户端解决方案,可以通过Ajax回调动态加载数据,因此可以将其与任何服务器端技术集成,包括PHP,...

    JqGrid:javascript 网格

    jqGrid 是一个支持 Ajax 的 JavaScript 控件,它提供了在 Web 上表示和操作表格数据的解决方案。 由于网格是通过 Ajax 回调动态加载数据的客户端解决方案,因此它可以与任何服务器端技术集成,包括 PHP、ASP、Java ...

    JQGrid的简单应用及第三方分页的实现 .NET实现

    2. 集成JQGrid:在C#后端,我们需要处理JQGrid的分页请求参数,如page、rows、sidx和sord。根据这些参数,生成相应的SQL查询语句,如`SELECT * FROM TableName LIMIT @start, @limit`,其中@start和@limit根据JQGrid...

    jQuery网格插件 jqGrid jQuery Data Grid

    1. **数据加载**:jqGrid支持多种数据源,如JSON、XML、HTML等,可以通过`url`参数指定服务器端接口地址,`datatype`参数设置数据类型。 2. **列定义**:`colModel`参数定义了表格的列,包括列名、索引、宽度、对齐...

    jqgrid序列

    - 初始化jqGrid:使用JavaScript初始化表格,配置各项参数,如数据源、列信息、分页设置等。 - 加载数据:根据配置加载数据,可以是静态数据,也可以是从服务器动态获取的数据。 **2. jqGrid的特性** - 数据处理:...

    jqgrid+三大框架

    【jqgrid+三大框架】是将前端数据展示组件jqGrid与经典的Java后端开发框架——Hibernate、Struts和Spring相结合的应用实例。这个项目基于MyEclipse2014开发环境,主要目标是实现数据的查询功能并通过jqGrid进行前端...

    jquery.jqgrid最新版

    2. 初始化jqGrid:通过JavaScript代码设置参数,调用jqGrid方法进行初始化。 ```javascript $("#jqGrid").jqGrid({ url: 'data.json', // 数据源 datatype: 'json', colModel: [ // 列定义 {name: 'id', index:...

    实现jqGrid三级表头功能,支持冻结,拖动

    在这个项目中,我们将探讨如何实现jqGrid的三级表头功能,并且支持冻结列以及拖动列的功能。 首先,让我们了解什么是三级表头。在标准的表格中,我们通常有单一或双层的表头,而在三级表头中,列标题被分为了三个...

    jqGrid完整实例

    3. **数据加载**:jqGrid可以处理JSON、XML、HTML等多种数据格式。对于远程数据源,通过`url`参数指定API接口地址,`datatype`指定数据类型。如果使用本地数据,可以设置`datatype`为`local`,并将数据传递给`data`...

    Lib.AspNetCore.Mvc.JqGrid:一组库,这些库为ASP.NET Core中的jqGrid使用提供支持

    Lib.AspNetCore.Mvc.JqGrid 一组库,它们支持和ASP.NET Core中的使用。 这是从jqGrid的相关功能ASP.NET核心演进 。 Lib.AspNetCore.Mvc.JqGrid.Infrastructure-表示jqGrid选项的类,枚举和常量。 由所有库共享。 Lib...

Global site tag (gtag.js) - Google Analytics