EasyUI 의 DataGrid 가 JSon 데이터 원본 을 연결 하 는 예제 코드
첫 번 째:데 이 터 는 데이터 집중 에 저장 되 고 줄 마다 여러 값 에 대응 하 며 순환 을 이용 하여 데 이 터 를 표 에 연결 합 니 다.
프론트 코드:
<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 함수 에 넣 으 면 됩 니 다.함수 가 실 행 될 때 표 는 데 이 터 를 연결 할 수 있 습 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
easyUI tree 확장 및 축소 작업 및 노드 할당 작업$(function(){ $('#menuTree').tree({ url:'menuTree!findMenuTree.action', lines:true, onClick:function(node){ var leaf = $...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.