이 글에서는 EasyUI의 DataGrid 바인딩 Json 데이터 소스의 샘플 코드를 주로 소개합니다. 편집자는 꽤 좋다고 생각하므로 지금 공유하고 참고용으로 제공하겠습니다. 에디터를 따라가서 살펴보겠습니다
EasyUI에서 데이터를 테이블에 바인딩하는 것은 가장 일반적으로 사용되는 방법입니다. 에디터는 테이블 바인딩에 대한 두 가지 요약된 방법을 공유합니다.
유형 1: 데이터가 데이터 세트에 저장되고, 각 행은 여러 값에 해당하며, 루프를 사용하여 데이터를 테이블에 바인딩합니다.
프런트 엔드 코드:
<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"); } });
Call 테이블을 바인딩해야 할 때 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 코드만 넣으면 테이블이 데이터를 바인딩할 수 있습니다.
위 내용은 제가 모두를 위해 컴파일한 것입니다. . 앞으로 모든 사람에게 도움이 되기를 바랍니다.
관련 기사:
React의 제어되는 구성 요소와 제어되지 않는 구성 요소에 대한 자세한 소개
Angular를 사용하여 기본 장바구니 기능을 구현하는 방법
node.js의 라우팅 및 미들웨어에 대한 자세한 소개 설명
webpack에서 실행되는 입장 기능에 대한 자세한 해석
위 내용은 EasyUI를 사용하여 Json 데이터 소스를 바인딩하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!