• Bootstrap-jqgrid学习(十六)


     jqgrid网站地址:

    jqGrid demos-jqGrid实例-中文-mn886.neticon-default.png?t=M85Bhttps://blog.mn886.net/jqGrid/ 

    表格属性

    分页属性:

    pagerstring定义翻页用的导航栏,必须是有效的html元素。翻页工具栏可以放置在html页面任意位置

    显示总条数 

    viewrecordsboolean定义是否要显示总记录数

     每页显示多少条:

    rowNumint在grid上显示记录条数,这个参数是要被传递到后台

    定义下拉列表,展示每页显示条数:

    rowNumint在grid上显示记录条数,这个参数是要被传递到后台

     列排序:

    sortnamestring默认的排序列。可以是列名称或者是一个数字,这个参数会被提交到后台

    给表格定义标题:

    captionstring表格名称

     定义是否隐藏表格的下拉按钮:

    hidegridboolean启用或者禁用控制表格显示、隐藏的按钮,只有当caption 属性不为空时起效

     自适应父容器:

    autowidthboolean如果为ture时,则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变,为了使表格宽度能够自动调整则需要实现函数:setGridWidth

     指定表格的高度:

    heightmixed表格高度,可以是数字,像素值或者百分比

    设置页面初始的页码:

    pageinteger设置初始的页码

     指定分页栏的位置:

    pagerposstring指定分页栏的位置

    是否显示翻页按钮:

    pgbuttonsboolean是否显示翻页按钮

     是否展示跳转页面输入框:

    pginputboolean是否显示跳转页面的输入框

     

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>jqgrid第一个Demo</title>
    6. <!--css-->
    7. <!--引入bootstrap的css-->
    8. <link rel="stylesheet" href="../static/css/bootstrap.min.css">
    9. <!--引入jqgrid的核心css-->
    10. <link rel="stylesheet" href="../static/jqgrid/ui.jqgrid-bootstrap.css">
    11. <!--js-->
    12. <!--引入jQuery的文件-->
    13. <script src="../static/jq/jquery-3.6.0.js"></script>
    14. <!--引入jqgrid的核心js-->
    15. <script src="../static/jqgrid/jquery.jqGrid.min.js"></script>
    16. <!--引入jqgrid的国际化js-->
    17. <script src="../static/jqgrid/grid.locale-cn.js"></script>
    18. <!--引入bootstrap的js文件-->
    19. <script src="../static/js/bootstrap.min.js"></script>
    20. <script>
    21. $(function(){
    22. /*
    23. * jqgrid属性使用方式:将属性以对象的方式作为jqgrid的参数进行传递即可,对象中的属性名:属性值书写 ---对应网站初始化参数大全
    24. * 2.jqgrid中的列属性方式 列属性使用也是以对象的形式作为colModel的参数进行传递即可 --对应网站ColModel参数大全
    25. * */
    26. $("#userList").jqGrid({//属性
    27. //初始化表格
    28. styleUI:"Bootstrap",//用来指定jqgrid的主题样式
    29. url: "./listpage.json",//用来远程获取数据的地址 json格式的数据 相当于$.post() ajax请求后台控制器 这里模仿后台让它访问json文件
    30. datatype: "json", //用来指定数据返回的数据类型默认是xml
    31. mtype:"POST",//请求方式,默认get请求
    32. colNames:["编号","姓名","年龄","生日","部门"],//用来指定标题列的名称 colNames必须和colModel成对出现 一个表名对应一个{}
    33. colModel:[
    34. {
    35. name:"id",
    36. align:"center",
    37. //列隐藏
    38. //hidedlg:true,
    39. //hidden:true
    40. },
    41. {
    42. name:"name",
    43. //对齐
    44. align:"center",
    45. //其否可编辑
    46. editable:true,
    47. //是否可以改变大小
    48. resizable:false,
    49. //列的宽度
    50. width:300
    51. },
    52. {
    53. name:"age",
    54. align:"center",
    55. formatter:function(cellvalue, options, rowObject){//用来对数据进二次处理 cellvalue:这列的值 options:这列的Page对象 rowObject:这行的json数据对象
    56. //原样渲染
    57. //return cellvalue;
    58. console.log(cellvalue);
    59. console.log(options);
    60. console.log(rowObject);
    61. //渲染
    62. if (cellvalue>23){
    63. return ""+cellvalue+"";
    64. }
    65. return ""+cellvalue+"";
    66. }
    67. },
    68. {
    69. name:"bir",
    70. align:"center"
    71. },
    72. {
    73. //name:"dep.name",
    74. name:"depName",
    75. align:"center",
    76. //使用formatter进行获取对象数据进行渲染
    77. formatter:function(cellvalue, options, rowObject){
    78. return rowObject.dep.name;
    79. }
    80. }
    81. ],
    82. //一旦做了分页处理之后数据的返回格式为:listpage.json的页面显示格式
    83. pager:"#pager",//用来定义分页工具栏 用来处理分页请求: 后台可以定义Integer page(当前页) Integer rows(每页显示条数)
    84. page:2,//定义页面初始的页码
    85. viewrecords:true,//展示总条数
    86. rowNum:5,//每页展示5条 默认是20
    87. rowList:[2,5,10,50,100],//用来定义下拉列表,可选页面展示条数
    88. sortname:"name",//基于那个列进行排序
    89. caption:"员工列表",//定义表格标题
    90. hidegrid:false,//禁用表格下拉展示标题隐藏按钮的显示 默认true显示
    91. autowidth:true,//自适应父容器
    92. height:400,//指定表格高度
    93. pagerpos:"left",//设置分页的位置
    94. pgbuttons:true,//是否显示分页中翻页按钮 默认是true
    95. pginput:true,//是否展示跳转页面输入框 默认是true
    96. });
    97. });
    98. </script>
    99. </head>
    100. <body>
    101. <!--表格标签 1.jquery插件 属性:(文档中是初始化参数大全) 对象{} 事件: 方法: -->
    102. <table id="userList"></table>
    103. <!--定义分页工具栏-->
    104. <div id="pager"></div>
    105. </body>
    106. </html>

     listpage.json:

    1. {
    2. "page": "1",
    3. "total": 2,
    4. "records": "13",
    5. "rows": [
    6. {
    7. "id": "21",
    8. "name": "xiaochen",
    9. "age": 23,
    10. "bir": "2012-12-12",
    11. "dep": {
    12. "id": "222",
    13. "name": "财务部"
    14. }
    15. },
    16. {
    17. "id": "22",
    18. "name": "张三",
    19. "age": 40,
    20. "bir": "2012-12-12",
    21. "dep": {
    22. "id": "222",
    23. "name": "研发部"
    24. }
    25. },
    26. {
    27. "id": "23",
    28. "name": "王五",
    29. "age": 33,
    30. "bir": "2012-12-12",
    31. "dep": {
    32. "id": "222",
    33. "name": "技术部"
    34. }
    35. },
    36. {
    37. "id": "24",
    38. "name": "李四",
    39. "age": 50,
    40. "bir": "2012-12-12",
    41. "dep": {
    42. "id": "222",
    43. "name": "外交部"
    44. }
    45. }
    46. ]
    47. }

     jqgrid的增删改工具栏的使用

     

    需要表格中的每一项设置可编辑:

    这样点击+号:自动跳出一个输入框

    有时候有1对多的情况部门以下拉框展示:

    需要在列属性中:添加定义成下拉框selece  加属性edittype

    editoptionsarray编辑的一系列选项。{name:’__department_id’,index:’__department_id’,width:200,editable:true,edittype:’select’,editoptions: {dataUrl:”/jqGrid/admin/deplistforstu.action”}},这个是演示动态从服务器端获取数据。
    edittypestring可以编辑的类型。可选值:text, textarea, select, checkbox, password, button, image and file.

    首先需要把列改为下拉框:

     表格属性:

     增删改的:url

    editurlstring定义对form编辑时的url

     

    点击提交:

    发起了edit请求:

    当点击修改也走得是这个url的请求,但是携带的参数oper不同:

    第二个参数:让添加按钮不展示: 

     

     

      需要后端,要有一个方法进行转换 eq 转换成=

     

     如果你不想要太多的条件,可以添加:sopt进行条件设置

     

     

    如果想编号等不作为搜索,可以在属性列设置 

            boolean是否是搜索列

     

    就没有了搜索列: 

     

     可以让标题居中,需要自己设置css样式:

     表格加载完触发事件:

    gridCompletenone当表格所有数据都加载完成而且其他的处理也都完成时触发此事件,排序,翻页同样也会触发此事件

     点击单元格触发的事件:

    onCellSelectrowid,iCol,cellcontent,e当点击单元格时触发。rowid:当前行id;iCol:当前单元格索引;cellContent:当前单元格内容;e:event对象

     

    点击:

     清除表格加载的数据:

    clearGridDataclearfooterjqGrid对象清除表格当前加载的数据。如果clearfooter为true时则此方法删除表格最后一行的数据
    setCaptioncaptionjqGrid对象设置表格的标题

     写一个按钮:

    写方法:调用:

     

     点击测试方法:

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>jqgrid第一个Demo</title>
    6. <!--css-->
    7. <!--引入bootstrap的css-->
    8. <link rel="stylesheet" href="../static/css/bootstrap.min.css">
    9. <!--引入jqgrid的核心css-->
    10. <link rel="stylesheet" href="../static/jqgrid/ui.jqgrid-bootstrap.css">
    11. <!--js-->
    12. <!--引入jQuery的文件-->
    13. <script src="../static/jq/jquery-3.6.0.js"></script>
    14. <!--引入jqgrid的核心js-->
    15. <script src="../static/jqgrid/jquery.jqGrid.min.js"></script>
    16. <!--引入jqgrid的国际化js-->
    17. <script src="../static/jqgrid/grid.locale-cn.js"></script>
    18. <!--引入bootstrap的js文件-->
    19. <script src="../static/js/bootstrap.min.js"></script>
    20. <style>
    21. th{
    22. text-align: center;
    23. }
    24. </style>
    25. <script>
    26. $(function(){
    27. /*
    28. * jqgrid属性使用方式:将属性以对象的方式作为jqgrid的参数进行传递即可,对象中的属性名:属性值书写 ---对应网站初始化参数大全
    29. * 2.jqgrid中的列属性方式 列属性使用也是以对象的形式作为colModel的参数进行传递即可 --对应网站ColModel参数大全
    30. * 3.jqgrid中事件的使用,将对应的事件以对象的方式作为jqgrid的参数进行传递即可
    31. * 4.jqgrid中方法的使用 对应jqgrid组件选择器.jqgrid(‘方法名’,参数列表)
    32. * */
    33. $("#userList").jqGrid({//属性
    34. //初始化表格
    35. styleUI:"Bootstrap",//用来指定jqgrid的主题样式
    36. url: "./listpage.json",//用来远程获取数据的地址 json格式的数据 相当于$.post() ajax请求后台控制器 这里模仿后台让它访问json文件
    37. datatype: "json", //用来指定数据返回的数据类型默认是xml
    38. mtype:"POST",//请求方式,默认get请求
    39. colNames:["编号","姓名","年龄","生日","性别","部门"],//用来指定标题列的名称 colNames必须和colModel成对出现 一个表名对应一个{}
    40. colModel:[
    41. {
    42. name:"id",
    43. align:"center",
    44. search:false,//不作为搜索条件
    45. //列隐藏
    46. //hidedlg:true,
    47. //hidden:true
    48. },
    49. {
    50. name:"name",
    51. //对齐
    52. align:"center",
    53. //其否可编辑 添加了可编辑后,在下方显示编辑功能按钮的时候,才有显示输入框进行编辑
    54. editable:true,
    55. //是否可以改变大小
    56. resizable:false,
    57. //列的宽度
    58. width:300
    59. },
    60. {
    61. name:"age",
    62. align:"center",
    63. //其否可编辑
    64. editable:true,
    65. formatter:function(cellvalue, options, rowObject){//用来对数据进二次处理 cellvalue:这列的值 options:这列的Page对象 rowObject:这行的json数据对象
    66. //原样渲染
    67. //return cellvalue;
    68. console.log(cellvalue);
    69. console.log(options);
    70. console.log(rowObject);
    71. //渲染
    72. if (cellvalue>23){
    73. return ""+cellvalue+"";
    74. }
    75. return ""+cellvalue+"";
    76. }
    77. },
    78. {
    79. name:"bir",
    80. align:"center",
    81. //其否可编辑
    82. editable:true
    83. },
    84. {
    85. name:"sex",
    86. align:"center",
    87. //其否可编辑
    88. editable:true,
    89. edittype:"select",//性别定义成下拉列表的格式
    90. editoptions:{//本地写死的数据 本地数据
    91. //multiple:true,//实现下拉列表的多选
    92. value:"1:男;2:女"
    93. }
    94. },
    95. {
    96. //name:"dep.name",
    97. name:"depName",
    98. align:"center",
    99. //其否可编辑
    100. editable:true,
    101. //使用formatter进行获取对象数据进行渲染
    102. formatter:function(cellvalue, options, rowObject){
    103. return rowObject.dep.name;
    104. },
    105. edittype:"select",//定义成下拉列表的格式 有1.本地写死的数据 2.远程获取
    106. editoptions:{
    107. dataUrl:"/dep/findAll",//从远端服务器获取数据 返回的数据是html的字符串 <select><option value="">研发部></option>...</select>
    108. }
    109. }
    110. ],
    111. //一旦做了分页处理之后数据的返回格式为:listpage.json的页面显示格式
    112. pager:"#pager",//用来定义分页工具栏 用来处理分页请求: 后台可以定义Integer page(当前页) Integer rows(每页显示条数)
    113. page:2,//定义页面初始的页码
    114. viewrecords:true,//展示总条数
    115. rowNum:5,//每页展示5条 默认是20
    116. rowList:[2,5,10,50,100],//用来定义下拉列表,可选页面展示条数
    117. sortname:"name",//基于那个列进行排序
    118. caption:"员工列表",//定义表格标题
    119. hidegrid:false,//禁用表格下拉展示标题隐藏按钮的显示 默认true显示
    120. autowidth:true,//自适应父容器
    121. height:400,//指定表格高度
    122. pagerpos:"center",//设置分页的位置 默认center
    123. pgbuttons:true,//是否显示分页中翻页按钮 默认是true
    124. pginput:true,//是否展示跳转页面输入框 默认是true
    125. editurl:"/user/edit",//编辑时的url 增删改发起的url 后端的接口
    126. //事件
    127. //数据加载完之后触发的事件
    128. gridComplete:function(){
    129. // alert();
    130. },
    131. //点击单元格触发的事件
    132. onCellSelect:function(rowid,iCol,cellcontent,e){
    133. console.log(rowid);//行的id
    134. console.log(iCol);
    135. console.log(cellcontent);//点击触发的值
    136. console.log(e);//事件对象
    137. }
    138. }).navGrid("#pager",//放置的位置
    139. {add:true,edit:true,del:true,search:true,refresh:true},//展示的配置
    140. {height:600,width:700,
    141. //编辑后关闭掉弹窗并且从新载入表格
    142. closeAfterEdit:true,reloadAfterSubmit:true},//编辑面板的配置
    143. {height:600,width:700,
    144. //添加成功关闭面板,刷新表格
    145. closeAfterAdd:true,reloadAfterSubmit:true},//添加的配置
    146. {
    147. //删除后关闭面板,刷新表格
    148. closeAfterDelete:true,reloadAfterSubmit:true},//删除的配置
    149. {sopt:['cn','eq','ne','lt','gt']}//搜索配置
    150. );//快速增加编辑功能按钮 表单的元素需要设置:其否可编辑 editable:true
    151. //参数1:将看看快速编辑按钮放到那个位置 参数2:展示编辑的配置对象 参数3:代表编辑面板的配置
    152. // 参数4:添加面板的配置 参数5:删除面板的配置 参数6:搜索面板的配置 参数7:刷新的配置
    153. });
    154. //方法
    155. function testMethod(){
    156. //jqgrid的方法
    157. $("#userList").jqGrid('clearGridData',false);//清除数据
    158. $("#userList").jqGrid('setCaption',"小陈");//更改标题
    159. }
    160. </script>
    161. </head>
    162. <body>
    163. <!--表格标签 1.jquery插件 属性:(文档中是初始化参数大全) 对象{} 事件: 方法: -->
    164. <table id="userList"></table>
    165. <!--定义分页工具栏-->
    166. <div id="pager"></div>
    167. <!---->
    168. <button class="btn btn-danger" onclick="testMethod()">测试方法</button>
    169. </body>
    170. </html>

  • 相关阅读:
    用 Flutter 的 Canvas 画点有趣的图形
    Android学习笔记 1.1 Android的发展和历史
    MyBatisPlus-多记录操作及逻辑删除
    程序员在技术之外,还要掌握一个技能——自我营销能力
    webpack5基础--08_处理字体图标资源
    河工计院ACM2022寒假培训题单以及超详细题解
    Matlab图像处理-HSI模型
    《UnityShader入门精要》学习2
    后端实现跨域的几种方案
    Flask Web框架入门教程
  • 原文地址:https://blog.csdn.net/dengfengling999/article/details/128203748