问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

easyui 如何把值赋给json数组

发布网友 发布时间:2022-04-22 18:39

我来回答

2个回答

懂视网 时间:2022-04-22 23:00

本篇文章主要介绍了EasyUI的DataGrid绑定Json数据源的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

EasyUI给表格绑定数据是最常用的方法,小编分享一下总结出来的两种绑定表格方法,知识在于积累。

第一种:数据存放在数据集中,每一行对应多个值,利用循环把数据绑定到表格

前台代码:

<table id="dg" class="easyui-datagrid" style="width:100%;height:100%;" title="需要设置表格标题" data-options=" 
 rownumbers:true, 
 singleSelect:true, 
 @*autoRowHeight:false,*@ 
 pagination:true 
 @*pageSize:10*@"> 
 <thead> 
 <tr> 
  <th field="colum1">列1</th> 
  <th field="colum2">列2</th> 
  <th field="colum3">列3</th> 
  <th field="colum4">列4</th> 
  <th field="colum5">列5</th> 
  <th field="colum6">列6</th> 
 </tr> 
 </thead> 
 </table>

JS代码:

(function ($) { 
 function pagerFilter(data) { 
 if ($.isArray(data)) { // is array 
 data = { 
 total: data.length, 
 rows: data 
 } 
 } 
 var target = this; 
 var dg = $(target); 
 var state = dg.data('datagrid'); 
 var opts = dg.datagrid('options'); 
 if (!state.allRows) { 
 state.allRows = (data.rows); 
 } 
 if (!opts.remoteSort && opts.sortName) { 
 var names = opts.sortName.split(','); 
 var orders = opts.sortOrder.split(','); 
 state.allRows.sort(function (r1, r2) { 
 var r = 0; 
 for (var i = 0; i < names.length; i++) { 
  var sn = names[i]; 
  var so = orders[i]; 
  var col = $(target).datagrid('getColumnOption', sn); 
  var sortFunc = col.sorter || function (a, b) { 
  return a == b ? 0 : (a > b ? 1 : -1); 
  }; 
  r = sortFunc(r1[sn], r2[sn]) * (so == 'asc' ? 1 : -1); 
  if (r != 0) { 
  return r; 
  } 
 } 
 return r; 
 }); 
 } 
 var start = (opts.pageNumber - 1) * parseInt(opts.pageSize); 
 var end = start + parseInt(opts.pageSize); 
 data.rows = state.allRows.slice(start, end); 
 return data; 
 } 
 
 var loadDataMethod = $.fn.datagrid.methods.loadData; 
 var deleteRowMethod = $.fn.datagrid.methods.deleteRow; 
 $.extend($.fn.datagrid.methods, { 
 clientPaging: function (jq) { 
 return jq.each(function () { 
 var dg = $(this); 
 var state = dg.data('datagrid'); 
 var opts = state.options; 
 opts.loadFilter = pagerFilter; 
 var onBeforeLoad = opts.onBeforeLoad; 
 opts.onBeforeLoad = function (param) { 
  state.allRows = null; 
  return onBeforeLoad.call(this, param); 
 } 
 var pager = dg.datagrid('getPager'); 
 pager.pagination({ 
  onSelectPage: function (pageNum, pageSize) { 
  opts.pageNumber = pageNum; 
  opts.pageSize = pageSize; 
  pager.pagination('refresh', { 
  pageNumber: pageNum, 
  pageSize: pageSize 
  }); 
  dg.datagrid('loadData', state.allRows); 
  } 
 }); 
 $(this).datagrid('loadData', state.data); 
 if (opts.url) { 
  $(this).datagrid('reload'); 
 } 
 }); 
 }, 
 loadData: function (jq, data) { 
 jq.each(function () { 
 $(this).data('datagrid').allRows = null; 
 }); 
 return loadDataMethod.call($.fn.datagrid.methods, jq, data); 
 }, 
 deleteRow: function (jq, index) { 
 return jq.each(function () { 
 var row = $(this).datagrid('getRows')[index]; 
 deleteRowMethod.call($.fn.datagrid.methods, $(this), index); 
 var state = $(this).data('datagrid'); 
 if (state.options.loadFilter == pagerFilter) { 
  for (var i = 0; i < state.allRows.length; i++) { 
  if (state.allRows[i] == row) { 
  state.allRows.splice(i, 1); 
  break; 
  } 
  } 
  $(this).datagrid('loadData', state.allRows); 
 } 
 }); 
 }, 
 getAllRows: function (jq) { 
 return jq.data('datagrid').allRows; 
 } 
 }) 
})(jQuery);
 $.ajax({ 
 type: "get", //AJAX提交方式 
 url: "路径", 
 datatype: "json", 
 data: "userid=" + "id"+ "&username=" + "name", //向后台传递参数,无需传递参数就可以删除 
 success: function (data) { 
 var rows = []; 
 
 for (var i = 0; i < data.length; i++) { //data是返回值的集合 
 rows.push({  //把data数据对应的值压到rows对应数组中 
  colum1: data[i].userid, 
  colum2: data[i].leve, 
  colum3: data[i].Username, 
  colum4: data[i].Tel, 
  colum5: data[i].Mail, 
  colum6: data[i].Explain 
 }); 
 } 
 $('#dg').datagrid({ data: rows }).datagrid('clientPaging'); 
 }, error: function () {  //执行出错时执行的方法 
 $.messager.alert("操作提示", "表格失败,请联系管理员!", "warning"); 
 } 
 });

需要绑定表格时调用AJAX方法,AJAX执行完后会自动调用显示数据方法,表格数据就显示出来了

第二种:直接在前台和JS设置好列名,自动绑定

前台代码:

<table id="dg" class="easyui-datagrid" title="需要显示表格标题 " data-options="  
 rownumbers:true, 
 singleSelect:true, 
 autoRowHeight:false, 
 pagination:true, 
 "> 
 <thead> 
  <tr> 
  <th data-options="field:'colum1',align:'center'">列名1</th> 
  <th data-options="field:'colum2',align:'center'">列名2</th> 
  <th data-options="field:'colum3',align:'center'">列名3</th> 
  <th data-options="field:'colum4',align:'center'">列名4</th> 
  <th data-options="field:'colum5',align:'center'">列名5</th> 
  <th data-options="field:'colum6',align:'center'">列名6</th> 
  </tr> 
 </thead> 
 </table>

JS代码:

 $('#dg').datagrid({ 
 url: '路径?Name=' + Name + "&combox=" + combox, //设置访问后台路径和传递参数,如果没有参数可以删除 
 dataType: 'json', 
 width: "100%", //宽度 
 striped: true, //把行条纹化(奇偶行背景色不同) 
 idField: 'quesID', //标识字段 
 loadMsg: '正在加载用户的信息.......', //从远程站点加载数据是,显示的提示消息 
 pagination: true, //数据网格底部显示分页工具栏 
 singleSelect: false, //只允许选中一行 
 pageList: [10, 20, 30, 40, 50], //设置每页记录条数的列表 
 pageSize: 10, //初始化页面尺寸(默认分页大小) 
 pageNumber: 1, //初始化页面(默认显示第一页) 
 beforePageText: '第', //页数文本框前显示的汉字 
 afterPageText: '页 共 {pages} 页', 
 displayMsg: '第{from}到{to}条,共{total}条', 
 columns: [[ //每页具体内容 
  { field: 'colum1', title: '标题1', width: "13%", align: 'center', editor: 'text' }, 
  { field: 'colum2', title: '标题2', width: "13%", align: 'center', editor: 'text' }, 
  { field: 'colum3', title: '标题3', width: "13%", align: 'center', editor: 'text' }, 
  { field: 'colum4', title: '标题4', width: "13%", align: 'center', editor: 'text' }, 
  { field: 'colum5', title: '标题5', width: "13%", align: 'center', editor: 'text' }, 
  { field: 'colum6', title: ' 标题6 ', width: "13%", align: 'center', editor: 'text' }, 
 ]], 
 
 onLoadSuccess: function (data) { 
 
 //表格加载成功后执行的代码,如果不需要可以删除 
 } 
 })

把JS代码放在一个function函数中就可以了,函数执行时表格就可以绑定数据了

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

在React中详细介绍受控组件与非受控组件

使用Angular如何实现基本购物车功能

在node.js中有关路由,中间件的详细介绍说明

在Vue中如何实现进入/离开动画

在webpack中详细解读入口函数run

热心网友 时间:2022-04-22 20:08

$('#tt').treegrid({
url: '/Section/List',
idField: 'id',
treeField: 'sectionname',
animate: true,
height: 550,
columns: [[
{ title: '部门名称', field: 'sectionname', width: 200 }
]]
});

这是通过后台组织的tree,返回给前台解析的方法,如果你就想要一个tree结构的话,直接在url里定义你的json文件就可以了。注意idField和treeField字段,不设置他们的话保证json里是id,text的格式,tree是可以自己解析的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
个达尔优破鼠标,请问怎么调才玩着顺 智能4k电视哪个牌子好 鼠标连点怎么破 破鼠标简直气死我了 三星4k电视使用一次光纤接口就坏了,怎么办? 破 鼠标!!是不是所有鼠标 只要稍微一接触不良 就停用 必须重起机子呢... 原装三星液晶屏4k惠普电视机多少钱 2015年欧元对换人民币汇率下滑到多少呢 2015年1月下旬欧元兑人民币汇率还能不能上涨 欧元兑换人民币汇率2015年3月份底会回到7吗? 我是电信手机用户,我想问下有短信转移业务吗 四年级劳动节日记330字左右 在easyui数据列表中点击编辑后,如何将后台读取到的json数据绑定到kindeditor中? 儿童引导师的工作总结怎么写? 怎么在和别人QQ视频聊天时放大右下角自己的视频? 苹果手机qq视频点进去为什么自己放大 女朋友借钱不还怎么办?不是笔小数目哦。 前女朋友借钱不还,能起诉吗?该怎样做? 我的笔记本的麦克风接口是耳麦合一的,想要外接麦克风怎么办啊? 男女朋友借钱不还可以报警处理吗 民法典男女朋友借钱不还可以起诉吗 女朋友借钱分手了不还该怎么处理 女友借钱不还怎么处理 梦到老公出轨我把小三的头打爆喷血 怎么带仓鼠过高铁安检 怎么样才可以把仓鼠带上火车??安全通过安检?? 如何把仓鼠带过火车安检,急啊,眼看马上就放假了 成都火车站带仓鼠怎么过安检 “老干妈”长子折戟昆明楼市,投资几亿元的房地产项目何以“烂尾”? 我用的是360安全浏览器,怎么样知道它不是处于脱机状态呢 鸡翅可以腌制两天吗 腌制鸡翅能放几天 烧烤怎么腌鸡翅 2017重庆消防监控证在哪里考 办理营业执照租赁合同要求 2017重庆大渡口消防监控证在哪里考 重庆监控证怎么考? 四川户口可以在重庆考监控证吗? 新宝骏rc5行车记录仪怎么弄 你好,在Oppo手机店里面买的,华为手机会不会仿机? 我用手机浏览器偷菜老提示网页储存慢请删除是怎么回事?谢谢 现在华为手机为什么这么直得,那么多的国产安卓品牌手机模仿华为手机的外观设计和配置呢?难道就因为它是 华为怎样分辨正品? 水鸡蛋怎么做 easyui数据绑定正确,在json数据中有个类类型数据怎么将里面的值绑定到控件上? 新科行车记录仪v12怎么设置 一道水蛋两蒸怎样做好吃? 蒸水蛋的做法,简单方式怎么做会嫩一些 打水蛋怎样做? 如何做水蛋做法大全集