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

jqgrid使用步骤及说明

 
阅读更多

                                      jqgrid使用说明

 

jqGrid 是一个用来显示网格数据的jQuery插件,可以动态的对数据网格的数据进行添加、删除、修改、查询、排序、拖拽等操作,数据源可以是json、xml

 

官网下载地址:http://www.trirand.com/blog/?page_id=6

官网文档:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs

观望DEMO:http://www.trirand.com/blog/jqgrid/jqgrid.html

jqgrid基于ssh代码实例:

下载simpleProj.war包后放到tomcat的webapp下,然后运行tomcat,访问http://localhost:8080/simpleProj/进行操作,数据库用的是内置的hsqldb

下载地址:ftp://192.168.100.253/liubx/simpleProj.war

使用jqGrid必须要引入jquery环境,如:

       <link rel="stylesheet" type="text/css" media="screen" href="<%=basePath%>js/themes/jquery-ui-1.8.10.custom.css" />

        <link rel="stylesheet" type="text/css" media="screen" href="<%=basePath%>js/jqGrid/css/ui.jqgrid.css" />

        <link rel="stylesheet" type="text/css" media="screen" href="<%=basePath%>js/css/jquery.alerts.css" />

        <script type="text/javascript" src="<%=basePath%>js/jquery.js"></script>

        <script src="<%=basePath%>js/jqGrid/grid.locale-cn.js" type="text/javascript"></script>

        <script src="<%=basePath%>js/jqGrid/jquery.jqGrid.min.js" type="text/javascript"></script>

        <script type="text/javascript" src="<%=basePath%>js/thickbox/thickbox.js"></script>

        <link rel="stylesheet" href="<%=basePath%>js/thickbox/thickbox.css" type="text/css" media="screen" />

jquery和jqgrid的版本要对应,一下是对jqgrid的一些参数说明:

1、colNames:列名称,用于描述在界面上显示的列名称

   colNames: ['编号','科室名称','联系人','联系电话','主管科室','状态','备注','opertype'],

2、colModel:列名称对应的model,该model内的各个列要和colNames的各个列进行一一对应

   可以对各个列设置属性,name属性药设置为json数据的key名称,也就是我们的Bean的对应属性名称,width:宽度,editable代表是否可编辑,edittype代表编辑框的类型,可以是  text、select、texare、checkbox等类型,formatter:格式化显示的数据,unformat:处于编辑状态后反格式化到以前的数据

   如:

    colModel: [

    {name:'dpt_code',index:'dpt_code',width:110,editable: true,edittype:"text",cellEdit:false,editrules:{required:true}},

    {name:'dpt_name',index:'dpt_name',width:110,editable: true,edittype:"text"},

    {name:'dpt_manager',index:'dpt_manager',width:100,editable: true,edittype:"text"},

    {name:'dpt_tel',index:'dpt_tel',width:120,editable: true,edittype:"text", editrules:{custom:true, custom_func:telcheck}},

    {name:'dpt_mandpt',index:'dpt_mandpt',editable: true,edittype:"text"},

    {name:'dpt_status',index:'dpt_status',formatter:formatStatus,width:60,editable: true,edittype:"select",unformat:unformatStatus,                                   editoptions :{value:'STP:停用'+';'+'USE:使用'}},

    {name:'dpt_remark',index:'dpt_remark',editable: true,edittype:"text"},

     {name:'opertype',index:'opertype',editable: false,edittype:"text",hidden:true},

                    ],

3、id:代表整个数据表格的一个ID,没条数据的ID必须是唯一的,常和后台数据表ID对应,

   id:dpt_code

4、caption:设置数据表格的标题名称

   caption: "科室管理11",

5、rowNum:设置表格默认显示记录的条数,用于分页

   rowNum:20

6、rowList:供用户选择每页显示的记录数

   rowList:[10,20,30,40],

7、pager: 用指定表格的工具栏

   pager: '#pageDiv',pageDiv是页面某个DIV的ID

8、pgbuttons:true, 是否显示页面分页按钮

9、 multiselect:'true',是指是否可以进行多选

10、altRows:'true',是否开启,提示功能

11、 multiboxonly:true 是否在多选的时候,显示复选框

12、height: 398,代表表格的高度

13、cellEdit:true,是否开启单元格的编辑功能

14、cellsubmit:'remote',remote代表每次编辑提交后进行服务器保存,clientArray只保存到数据表格不保存到服务器

15、cellurl:'departmentAction!updateCell.action',cellsubmit要提交的后台路径

16、scrollrows:true是否可以出现滚动条

17、shrinkToFit:false是否固定每列的宽度

18、editurl:表格的添加、修改、删除按钮所提交的路径

   editurl:'departmentAction!updateDepartment2.action',

19、sortname:默认排序的列

   sortname: 'dpt_sort',

20、jsonReader:解析json数据的参数

    jsonReader: {

                        repeatitems : false,

                        id: "dpt_code" //对应后台数据的ID

                    },

21、prmNames :向后台交互时,所设置的参数名称对应的值

   prmNames : {

                        page:"department.curr_page",    // 表示请求页码的参数名称

                        rows:"department.page_size",    // 表示请求行数的参数名称

                        sort: "department.sort_field", // 表示用于排序的列名的参数名称

                        order: "department.sord", // 表示采用的排序方式的参数名称

                        search:"search", // 表示是否是搜索请求的参数名称

                        totalrows:"department.totalrows" // 表示需从Server得到总共多少行数据的参数名称,参见jqGrid选项中的rowTotal

                    }

22、gridComplete:设置表格数据加载完毕后,所执行的操作

     gridComplete:function(){

                        if($("#gridTable").getDataIDs().length>0){

                            $("#gridTable").jqGrid('setSelection',$("#gridTable").getDataIDs()[0]);//默认选中第一行

                        }

                    },

23、onSelectRow:表格某行被选中后执行的操作:

    onSelectRow:function(){

                        loadDataGrid();

                    },

24、ondblClickRow:数据某行所执行的操作

25、beforeSelectRow:某行记录在被选中前执行操作

26、afterSelectRow:某行记录再被选中后所执行操作

27、设置表格的添加、删除、修改、查询按钮是否显示,也可以自定义按钮

      search:false不显示查询按钮,add_options主要设置点添加按钮后弹出框的样式及模式

      navButtonAdd:通过该方法可以添加自定义的按钮

      var add_options={

                    width:400,

                    height:290,

                    left:20,

                    top:30,

                    reloadAfterSubmit:false,

                    jqModal:false,

                    addCaption: "添加部门信息",

                    bSubmit: "保存",

                    bCancel: "关闭",

                    closeAfterAdd:true

 

                };

     jQuery("#gridTable").jqGrid('navGrid','#pageDiv',{search:false,edit:true,add:true,del:true},edit_options,add_options,{},{},{}).navButtonAdd('#pageDiv',{

                    caption:"添加",edit:true显示编辑按钮

                    title:'添加药品信息',

                    buttonicon:"ui-icon-update",

                    onClickButton:function(){

                        tb_show('添加科室信息','/simpleProj/bsic/departmentAction!addDepartment.action?TB_iframe=true&height=420&width=630&keepThis=false"',true);

                    },

                    position:"last"

                });

28、获取表格总行数

     var ids = $("#gridTable").getDataIDs();获得所有数据的ID数组

29、按ID获取某行数据操作:

    $("#gridTable").jqGrid("getRowData",id);

30、获取选中行的记录,如果设置的multiselect为true那么获取的是数组反正是一个对象

    var re = $("#gridTable").jqGrid('getGridParam','selrow'),返回一个json对象,可以通过如下方式访问:

    re.dpt_name,re.dpt_tel

31、在数据网格动态增加行操作

    rowid代表行号、dataRow一条josn数据,last指向表格最后一行追加

    $("#gridTable").jqGrid("addRowData", rowid, dataRow, "last");

32、一下是对部门表管理的完整代码:

    <%@page contentType="text/html; charset=utf-8" %>

<%@ taglib prefix="s" uri="/struts-tags" %>

<%

    String path = request.getContextPath();

    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()

            + path + "/";

%>

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <title> Page</title>

        <link rel="stylesheet" type="text/css" media="screen" href="<%=basePath%>js/themes/jquery-ui-1.8.10.custom.css" />

        <link rel="stylesheet" type="text/css" media="screen" href="<%=basePath%>js/jqGrid/css/ui.jqgrid.css" />

        <link rel="stylesheet" type="text/css" media="screen" href="<%=basePath%>js/css/jquery.alerts.css" />

        <script type="text/javascript" src="<%=basePath%>js/jquery.js"></script>

        <script src="<%=basePath%>js/jqGrid/grid.locale-cn.js" type="text/javascript"></script>

        <script src="<%=basePath%>js/jqGrid/jquery.jqGrid.min.js" type="text/javascript"></script>

        <script type="text/javascript" src="<%=basePath%>js/thickbox/thickbox.js"></script>

        <link rel="stylesheet" href="<%=basePath%>js/thickbox/thickbox.css" type="text/css" media="screen" />

        <script language="javascript">

            $(document).ready(function(){

                function formatStatus(cval, options ){

                    if(cval){

                        if(cval=='STP'){

                            return "停用";

                        }else if(cval=='USE'){

                            return '可用';

                        }else{

                            return cval;

                        }

                    }

                }

                function unformatStatus(cval, options ){

                    if(cval){

                        if(cval=='停用'){

                            return "STP";

                        }else if(cval=='可用'){

                            return 'USE';

                        }else{

                            return cval;

                        }

                    }

                }

                function telcheck(val, colname){

                     var pattern =/^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/;

                     if(!pattern.exec(val)) {

                          return [false,"请输入正确的电话号码!"]; 

 

                     }else{

                        return [true,""]; 

 

                     }

 

                }

                $('#gridTable').jqGrid({

                    url: 'departmentAction!queryDepartment.action',

                    datatype: "json",

                    height: "auto",

                    colNames: ['编号','科室名称','联系人','联系电话','主管科室','状态','备注','opertype'],

                    colModel: [

                        {name:'dpt_code',index:'dpt_code',width:110,editable: true,edittype:"text",cellEdit:false,editrules:{required:true}},

                        {name:'dpt_name',index:'dpt_name',width:110,editable: true,edittype:"text"},

                        {name:'dpt_manager',index:'dpt_manager',width:100,editable: true,edittype:"text"},

                        {name:'dpt_tel',index:'dpt_tel',width:120,editable: true,edittype:"text", editrules:{custom:true, custom_func:telcheck}},

                        {name:'dpt_mandpt',index:'dpt_mandpt',editable: true,edittype:"text"},

                        {name:'dpt_status',index:'dpt_status',formatter:formatStatus,width:60,editable: true,edittype:"select",unformat:unformatStatus, editoptions :{value:'STP:停用'+';'+'USE:使用'}},

                        {name:'dpt_remark',index:'dpt_remark',editable: true,edittype:"text"},

                        {name:'opertype',index:'opertype',editable: false,edittype:"text",hidden:true},

                    ],

                    id:'dpt_code',

                    caption: "科室管理11",

                    rowNum:20,

                    rowList:[10,20,30,40],

                    pager: '#pageDiv',

                    pgbuttons:true,

                    viewrecords: true,

                    pagerpos:'center',

                    multipleSearch:'true',

                    altRows:'true',

                    multiselect: true,

                    multiboxonly:true,

                    height: 398,

                    cellEdit:true,

                    cellsubmit:'remote',

                    cellurl:'departmentAction!updateCell.action',

                    scrollrows:true,

                    shrinkToFit:false,

                    width:838,

                    editurl:'departmentAction!updateDepartment2.action',

                    sortname: 'dpt_sort',

                    jsonReader: {

                        repeatitems : false,

                        id: "dpt_code"

                    },

                    prmNames : {

                        page:"department.curr_page",    // 表示请求页码的参数名称

                        rows:"department.page_size",    // 表示请求行数的参数名称

                        sort: "department.sort_field", // 表示用于排序的列名的参数名称

                        order: "department.sord", // 表示采用的排序方式的参数名称

                        search:"search", // 表示是否是搜索请求的参数名称

                        totalrows:"department.totalrows" // 表示需从Server得到总共多少行数据的参数名称,参见jqGrid选项中的rowTotal

                    }

                });

                var add_options={

                    width:400,

                    height:290,

                    left:20,

                    top:30,

                    reloadAfterSubmit:false,

                    jqModal:false,

                    addCaption: "添加部门信息",

                    bSubmit: "保存",

                    bCancel: "关闭",

                    closeAfterAdd:true

 

                };

                var edit_options={

                    width:400,

                    height:290,

                    left:20,

                    top:30,

                    reloadAfterSubmit:false,

                    jqModal:false,

                    editCaption: "修改部门信息",

                    bSubmit: "保存",

                    bCancel: "关闭",

                    closeAfterEdit:true

 

                };

                jQuery("#gridTable").jqGrid('navGrid','#pageDiv',{search:false,edit:true,add:true,del:true},edit_options,add_options,{},{},{}).navButtonAdd('#pageDiv',{

                    caption:"添加",

                    title:'添加药品信息',

                    buttonicon:"ui-icon-update",

                    onClickButton:function(){

                        tb_show('添加科室信息','/simpleProj/bsic/departmentAction!addDepartment.action?TB_iframe=true&height=420&width=630&keepThis=false"',true);

                    },

                    position:"last"

                });

                $("#queryButton_id").click(function(){

                    dpt_code =encodeURIComponent($("#dpt_code_id").val());

                    dpt_status =encodeURIComponent($("#dpt_status_id").val());

                    dpt_name =encodeURIComponent($("#dpt_name_id").val());

                    jQuery("#gridTable").jqGrid('setGridParam',{url:"departmentAction!queryDepartment.action?department.dpt_code="+dpt_code+"&department.dpt_name="+dpt_name+"&department.dpt_status="+dpt_status,page:1}).trigger("reloadGrid");

                });

                $("#addRow").click(function(){

 

                    var ids = $("#gridTable").jqGrid('getDataIDs');

 

                    var rowid = ids.length + 1;

                    var dataRow ={dpt_code:'',dpt_name:'',dpt_manager:'',dpt_tel:'',dpt_mandpt:'',dpt_status:'USE',dpt_remark:'',opertype:'add'};

                    $("#gridTable").jqGrid("addRowData", rowid, dataRow, "last");     

                });

                $("#saveButton_id").click(function(){

                    var ids = $("#gridTable").getDataIDs();

                    var re;

                    var type;

                    var mty_num=0;

                    var strparm="{";

                    $.each(ids,function(i,id){

                        re=$("#gridTable").jqGrid("getRowData",id);

                        type = re.opertype;

                        if(type=="add" || type=="update"){

                           patrnVal(re.dpt_status);

                            strparm=strparm+"'mtyzptList["+mty_num+"].dpt_code':'"+re.dpt_code+"','mtyzptList["+mty_num+"].dpt_name':'"+re.dpt_name+"','mtyzptList["+mty_num+"].dpt_manager':'"+re.dpt_manager+"','mtyzptList["+mty_num+"].dpt_tel':'"+re.dpt_tel+"','mtyzptList["+mty_num+"].dpt_mandpt':'"+re.dpt_mandpt+"','mtyzptList["+mty_num+"].dpt_status':'"+re.dpt_status+"','mtyzptList["+mty_num+"].dpt_remark':'"+re.dpt_remark+"',";

                            mty_num++;

                        }

 

                    });

                    if(mty_num==0){

                        alert("数据未更改!");

                        return;

                    }

                    strparm=strparm.substring(0,strparm.length-1);

                    strparm=strparm+"}";

 

                    while(strparm.indexOf("\r\n") >= 0){

                        strparm = strparm.replace("\r\n", "\\r\\n");

                    }

                    eval("var param="+strparm);

                    $.post("departmentAction!batchUpdate.action",param,function(data){

                        alert(data);

                        if(data && data=='OK'){

                         //   $("#gridTable").trigger("reloadGrid");

                        }else{

                            alert("保存数据失败,请查看相关日志!");

                        }

                    },"json");

                });

                function patrnVal(s)  

                {  

                    if ($(s).val()) 

                    {

 

                        alert($(s).val());

 

                    }else{

                        alert(s);

                    }  

 

                }  

            });

        </script>

    </head>

    <body>

        <div  style="width:62%;height:80%;border:1px solid gray;float:left;">

            <s:form action="departmentAction!queryDepartment.action" theme="simple" method="post">

                <table width="100%" border="0" cellspacing="0" cellpadding="0">

                    <tr><td colspan="8"></td></tr>

                    <tr>

                        <td>科室编号</td>

                        <td><s:textfield id="dpt_code_id" name="department.dpt_code" required="true" /> </td>

                        <td>科室名称</td>

                        <td><s:textfield id="dpt_name_id" name="department.dpt_name" required="true" />

                        </td>

                    </tr>

                    <tr>

                        <td>状态</td>

                        <td>

                            <s:select label="状 态"  id="dpt_status_id" name="department.dpt_status" headerKey="" headerValue="请选择状态"

                                      list="#{'USE':'---有 效---','STP':'---无 效---'}"  />

                        </td>

                        <td colspan="2"><input type="button" id="queryButton_id" value="查 询"/>

                            <input type="button" id="addRow" value="添加一行"/>

                            <input type="button" id="saveButton_id" value="保 存"/></td>    

                    </tr>

 

                </table>

            </s:form>

            <table id="gridTable">

            </table>

            <div id="pageDiv">

            </div>

        </div>

        <!--div style="width:49%;height:80%;border:1px solid gray;float:left;">

            <table id="gridTable2">

            </table>

            <div id="pageDiv2">

            </div>

            <div>

                <input></input>

            </div>

        </div>

    </body-->

</html>


分享到:
评论
2 楼 coralandbill 2013-01-17  
下载不了啊  能不能给我发一个simpleProj.war包啊 邮箱766915976@qq.com
1 楼 maojin 2012-10-25  
这是jqgrid几?那个电话号码校验的函数能调到吗?

相关推荐

    jqgrid使用说明及实例

    `jqgrid使用说明及实例.docx`文档很可能包含了详细的步骤和代码示例,演示如何创建一个基本的jqGrid,包括设置列、加载数据、实现分页和排序。你可以参考文档中的代码,结合实际项目需求进行调整。 **注意事项:** ...

    jquery jqgrid

    在“使用说明完整demo”中,你可以看到jqGrid各种功能的实际应用示例,从基础的表格创建,到复杂的表单编辑、数据检索,都有详尽的步骤说明。这些示例可以帮助你快速上手,避免在实际开发中走弯路。 此外,附带的...

    jqGrid5.X 官方全Demo下载

    - `install.txt`:包含安装和配置 jqGrid5.X 的步骤,对于初次使用者非常有帮助。 3. **样式与框架** - `css` 目录:包含了 jqGrid 的样式文件,用于定义表格的外观和布局,可以自定义以满足特定的设计需求。 - ...

    jqgrid使用说明

    在使用JqGrid之前,需要了解其B/S架构设计原理。在B/S架构中,服务器端负责数据的管理,客户端则负责数据的展示。JqGrid通过简单的配置,可以将数据库信息以表格形式展示出来,并允许用户交互。数据可以被客户端修改...

    jqGrid官方I文档

    - **安装**:文档提供了安装指南,但具体步骤未给出。 #### 四、工作原理 jqGrid 通过 Ajax 技术实现在客户端动态加载和操作数据,这种方式使得数据的交互更加灵活,提高了用户体验。同时,由于它是基于 jQuery 的...

    jqGrid使用帮助

    ### jqGrid 使用帮助 #### 一、jqGrid简介与组件说明 **jqGrid** 是一个高级、响应式且高度可定制的 jQuery ...通过以上步骤,你可以轻松地利用 jqGrid 创建一个功能强大的数据表格,并对其进行高度的定制化设置。

    JQgrid使用文档

    安装JQGrid的过程在文档中有详细的说明,包括系统需求的确认、下载JQGrid和所需组件、下载用户界面主题等步骤。文档还提供了开发指南,引导开发者如何使用JQGrid创建第一个网格,包括创建HTML文件、编写代码解释和...

    jqgrid合并单元格.rar

    通过注释说明,开发者可以了解每个关键步骤的作用,从而在自己的项目中应用这些技术。 此外,为了使合并效果生效,可能还需要调整jqGrid的一些其他配置,比如`cellLayout`(定义每个单元格之间的间隔)和`gridview`...

    jqgriddemo.zip

    压缩包内的“下载说明.txt”可能提供了下载和安装该 demo 的步骤,包括如何将文件部署到本地服务器并运行。遵循这些说明,开发者可以在自己的开发环境中轻松地运行和调试 jqGrid 示例。 “解压密码.txt”文件则可能...

    前端开发:基于jqGrid实现数据展示与操作的最佳实践

    每种方式不仅涵盖初始化网格、定义表头和配置参数的关键步骤,还有具体的代码示例用于说明。 适用人群:适用于需要快速掌握jqGrid使用技巧并能够将其应用于实际项目中的前端开发者,特别适合中级以上的程序员。 使用...

    Guriddo_jqGrid_JS_5_3_X_demo

    5. **bootstrap网站.txt** - 这可能是关于如何将jqGrid与Bootstrap框架结合使用的说明。Bootstrap是流行的前端UI框架,结合jqGrid可以创建响应式、美观的数据表。这个文件可能会介绍如何调整jqGrid的样式以适应...

    wijmo+jquery+jqueryui+jqgrid 最新开发包以及demo

    压缩包内的“新建 Microsoft Word 文档.doc”可能是一个详细说明文档,解释了如何使用这些库,或者包含了一些示例的步骤和解释。 总的来说,这个压缩包对于那些希望在Web应用中实现复杂交互和强大数据展示功能的...

    jqGrid表格内容查询读取代码.zip

    首先,"说明.htm"可能包含了一个详细的使用指南或API参考,帮助开发者理解如何配置和操作jqGrid来展示和处理表格数据。这部分可能涵盖了如何初始化表格、定义列模型、设置数据源以及启用各种交互功能等内容。 例如...

    free-jqgrid-4.15.5.tgz

    使用jqGrid通常包括以下步骤: 1. 引入jqGrid的js和css文件。 2. 创建HTML表格结构。 3. 初始化jqGrid,配置相关选项。 4. 加载数据源,可以是JSON、XML或其他格式。 例如,一个基本的初始化代码如下: ```html ...

    jqGridASPNET 3.6最新汉化包

    同时,"附带使用方法"提示我们,该压缩包可能包含了关于如何在项目中集成和使用jqGrid的说明。 标签“jqGrid 3.6 最新汉化包”和“使用方式”进一步强调了这个资源的核心价值,即为用户提供了一个更新且汉化的...

    分布式框架简介SSM组合+ springmvc+mybatis+shiro+restful+bootstrap

    - **数据表格**: jqGrid(jQuery插件)。 - **对话框**: jQuery jBox。 - **树结构控件**: jQuery zTree。 - **其他组件**: Bootstrap Metronic(高级响应式前端框架)。 - **支持** - **服务器中间件**: ...

    jQuery插件 tabBox实现代码

    7. 插件的适用性和可扩展性:文档中提到了其他两个著名jQuery插件:webUI和jqGrid,这说明了tabBox插件可以在多种不同的网页设计环境中使用,同时也暗示了插件的可扩展性和复用性。 8. 插件的局限性及解决方法:...

    jQuery Table表格排序显示特效代码

    - `使用帮助.txt`: 这个文件可能包含了关于如何使用提供的代码示例的具体说明和步骤。 - `谷普下载.url`和`说明.url`:这些可能是链接到更多下载选项或详细说明的快捷方式。 - `jiaoben4920`: 这可能是一个代码...

Global site tag (gtag.js) - Google Analytics