티스토리 뷰
Kendo UI Web Grid by Telelik
- jQuery v1.8.2 기반의 무료 그리드 위젯 라이브러리
- 튜토리얼
http://demos.kendoui.com/web/grid/index.html
http://docs.kendoui.com/api/web/grid
- 다운로드 링크
http://telerik.s3.amazonaws.com/kendoui.web.2012.3.1114.open-source.zip
http://cdn.kendostatic.com/2012.3.1114/js/kendo.web.min.js
http://cdn.kendostatic.com/2012.3.1114/styles/kendo.common.min.css
http://cdn.kendostatic.com/2012.3.1114/styles/kendo.default.min.css
Bootstrap Theme for Kendo UI Web by AdvancedREI
https://github.com/advancedrei/BootstrapForKendoUI
- AdvancedREI 개발팀이 만든 Kendo UI Web Grid를 위한 Twitter Bootstrap CSS 테마 제공
- kendo.default.min.css를 대체
- 소개글
http://bristowe.com/blog/2012/9/25/tales-of-kendo-ui-awesomeness-advancedrei
- 다운로드 링크
https://github.com/advancedrei/BootstrapForKendoUI/raw/master/Stylesheets/kendo.bootstrap.min.css
Knockout-Kendo.js by Ryan Niemeyer
http://rniemeyer.github.com/knockout-kendo/
- Knoockout.js 개발자가 만든 Kendo UI Web을 위한 Knockout.js 바인딩 라이브러리 제공
- 소개글
http://www.knockmeout.net/2012/03/knockoutjs-bindings-for-kendo-ui.html
http://www.kendoui.com/blogs/teamblog/posts/12-12-20/knockout_js_and_kendo_ui_-_a_potent_duo.aspx
- 다운로드 링크
https://raw.github.com/rniemeyer/knockout-kendo/master/build/knockout-kendo.js
https://github.com/rniemeyer/knockout-kendo/blob/master/build/knockout-kendo.min.js
Kendo UI Web Grid: Enabling Server Side Sorting and Paging with ASP.NET MVC by dlewis
http://sympletech.com/hacking-on-the-kendo-ui-grid-enabling-server-side-sorting-and-paging-in-asp-net-mvc/
Kendo UI Web Grid: KendoGridBinder Demo by Stef
https://github.com/StefH/KendoGridBinder
http://kendogridbinderex.apphb.com/
API Reference: kendo.data.DataSource
http://docs.kendoui.com/api/framework/datasource
API Reference: kendo.ui.Grid
http://docs.kendoui.com/api/web/grid
Bootstrap 테마 적용하기
* 아래 순서대로 CSS를 임포트
<link rel="stylesheet" href="/resources/lib/KendoUIWeb/css/kendo.common.min.css">
<link rel="stylesheet" href="/resources/lib/KendoUIWeb/css/kendo.default.min.css">
<link rel="stylesheet" href="/resources/lib/KendoUIWeb/css/kendo.bootstrap.min.css">
메시지 한글화하기
* kendo.web.min.js 파일을 아래와 같이 수정
required:"{0} is required"
pattern:"{0} is not valid"
min:"{0} should be greater than or equal to {1}"
max:"{0} should be smaller than or equal to {1}"
step:"{0} is not valid"
email:"{0} is not valid email"
url:"{0} is not valid URL"
date:"{0} is not valid date"
empty:"Drag a column header and drop it here to group by that column"
display:"{0} - {1} of {2} items" >> "전체 {2}개 항목 중 {0}~{1}번째 항목 출력"
empty:"No items to display" >> "출력할 항목이 없습니다"
page:"Page"
of:"of {0}"
itemsPerPage:"items per page" >> "한 페이지에 출력할 항목 수"
first:"Go to the first page" >> "첫 페이지로 이동"
previous:"Go to the previous page" >> "전 페이지로 이동"
next:"Go to the next page" >> "다음 페이지로 이동"
last:"Go to the last page" >> "마지막 페이지로 이동"
refresh:"Refresh" >> "새로 고침"
sortAscending:"Sort Ascending" >> "오름차순 정렬"
sortDescending:"Sort Descending" >> "내림차순 정렬"
filter:"Filter" >> "필터"
columns:"Columns"
uploadFile:"Upload"
orderBy:"Arrange by"
orderByName:"Name"
orderBySize:"Size"
directoryNotFound:"A directory with this name was not found."
emptyFolder:"Empty Folder"
deleteFile:'Are you sure you want to delete "{0}"?'
invalidFileType:"The selected file \"{0}\" is not valid. Supported file types are {1}."
overwriteFile:"A file with name \"{0}\" already exists in the current directory. Do you want to overwrite it?"
dropFilesHere:"drop files here to upload"
info:"Show items with value that:"
isTrue:"is true"
isFalse:"is false"
filter:"Filter"
clear:"Clear"
and:"And"
or:"Or"
selectValue:"-Select value-"
한글화 적용하기
* 아래 순서대로 JavaScript를 임포트
<script src="/resources/lib/jQuery/jquery-1.8.3.min.js"></script>
<script src="/resources/lib/KendoUIWeb/js/kendo.web.min.js"></script>
<script src="/resources/lib/KendoUIWeb/js/cultures/kendo.culture.ko-KR.min.js"></script>
테이블에 그리드 적용하기
* HTML
<div class="k-content" style="overflow: auto; width: 100%">
<table id="someTable"></table>
</div>
* JavaScript (그리드 정의)
$('#someTable').kendoGrid({
dataSource: {
data: localDataSource,
pageSize: 10
},
autoBind : false, // 그리드 초기화시 DataSource 자동 맵핑을 방지
sortable: {
mode: "multiple",
allowUnsort: true
},
selectable: 'multiple row',
navigatable: false,
pageable: {
refresh: true,
pageSizes: true
},
scrollable: true,
columnMenu: false,
columns: [{
field: 'IS_SELECTED',
title: ' ',
template: '<input type="checkbox" />',
width: 35},
{
field: 'DB_TABLE_FIELD_NAME_1',
title: '컬럼명1',
width: 60},
{
field: 'DB_TABLE_FIELD_NAME_2',
title: '컬럼명2',
width: 200},
{
field: 'DB_TABLE_FIELD_NAME_3',
title: '컬럼명3',
width: 200},
{
field: 'DB_TABLE_FIELD_NAME_4',
title: '컬럼명4',
width: 200},
{
field: 'DB_TABLE_FIELD_NAME_5',
title: '컬럼명5',
width: 200},
{
field: 'DB_TABLE_FIELD_NAME_6',
title: '컬럼명6',
width: 200},
{
field: 'DB_TABLE_FIELD_NAME_7',
title: '컬럼명7',
width: 200},
{
field: 'DB_TABLE_FIELD_NAME_8',
title: '컬럼명8',
width: 200},
{
field: 'DB_TABLE_FIELD_NAME_9',
title: '컬럼명9',
width: 200},
{
field: 'DB_TABLE_FIELD_NAME_10',
title: '컬럼명10',
width: 200},
{
field: 'DB_TABLE_FIELD_NAME_11',
title: '컬럼명11',
width: 200}]
});
* JavaScript (로컬 데이터소스 정의)
var localDataSource = [{
DB_TABLE_FIELD_NAME_1: '1001',
DB_TABLE_FIELD_NAME_2: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_3: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_4: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_5: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_6: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_7: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_8: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_9: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_10: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_11: 'DB_TABLE_FIELD_VALUE_1'},
{
DB_TABLE_FIELD_NAME_1: '1002',
DB_TABLE_FIELD_NAME_2: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_3: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_4: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_5: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_6: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_7: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_8: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_9: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_10: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_11: 'DB_TABLE_FIELD_VALUE_1'},
{
DB_TABLE_FIELD_NAME_1: '1003',
DB_TABLE_FIELD_NAME_2: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_3: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_4: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_5: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_6: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_7: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_8: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_9: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_10: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_11: 'DB_TABLE_FIELD_VALUE_1'},
{
DB_TABLE_FIELD_NAME_1: '1004',
DB_TABLE_FIELD_NAME_2: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_3: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_4: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_5: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_6: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_7: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_8: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_9: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_10: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_11: 'DB_TABLE_FIELD_VALUE_1'},
{
DB_TABLE_FIELD_NAME_1: '1005',
DB_TABLE_FIELD_NAME_2: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_3: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_4: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_5: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_6: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_7: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_8: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_9: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_10: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_11: 'DB_TABLE_FIELD_VALUE_1'},
{
DB_TABLE_FIELD_NAME_1: '1006',
DB_TABLE_FIELD_NAME_2: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_3: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_4: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_5: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_6: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_7: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_8: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_9: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_10: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_11: 'DB_TABLE_FIELD_VALUE_1'},
{
DB_TABLE_FIELD_NAME_1: '1007',
DB_TABLE_FIELD_NAME_2: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_3: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_4: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_5: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_6: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_7: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_8: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_9: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_10: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_11: 'DB_TABLE_FIELD_VALUE_1'},
{
DB_TABLE_FIELD_NAME_1: '1008',
DB_TABLE_FIELD_NAME_2: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_3: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_4: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_5: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_6: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_7: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_8: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_9: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_10: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_11: 'DB_TABLE_FIELD_VALUE_1'},
{
DB_TABLE_FIELD_NAME_1: '1009',
DB_TABLE_FIELD_NAME_2: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_3: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_4: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_5: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_6: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_7: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_8: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_9: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_10: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_11: 'DB_TABLE_FIELD_VALUE_1'},
{
DB_TABLE_FIELD_NAME_1: '1010',
DB_TABLE_FIELD_NAME_2: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_3: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_4: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_5: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_6: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_7: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_8: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_9: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_10: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_11: 'DB_TABLE_FIELD_VALUE_1'},
{
DB_TABLE_FIELD_NAME_1: '1011',
DB_TABLE_FIELD_NAME_2: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_3: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_4: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_5: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_6: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_7: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_8: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_9: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_10: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_11: 'DB_TABLE_FIELD_VALUE_1'},
{
DB_TABLE_FIELD_NAME_1: '1012',
DB_TABLE_FIELD_NAME_2: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_3: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_4: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_5: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_6: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_7: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_8: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_9: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_10: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_11: 'DB_TABLE_FIELD_VALUE_1'},
{
DB_TABLE_FIELD_NAME_1: '1013',
DB_TABLE_FIELD_NAME_2: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_3: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_4: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_5: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_6: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_7: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_8: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_9: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_10: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_11: 'DB_TABLE_FIELD_VALUE_1'},
{
DB_TABLE_FIELD_NAME_1: '1014',
DB_TABLE_FIELD_NAME_2: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_3: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_4: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_5: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_6: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_7: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_8: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_9: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_10: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_11: 'DB_TABLE_FIELD_VALUE_1'},
{
DB_TABLE_FIELD_NAME_1: '1015',
DB_TABLE_FIELD_NAME_2: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_3: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_4: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_5: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_6: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_7: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_8: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_9: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_10: 'DB_TABLE_FIELD_VALUE_1',
DB_TABLE_FIELD_NAME_11: 'DB_TABLE_FIELD_VALUE_1'
}];
* 적용 결과
* Remote DataSource 정의하기
serverPaging: true, // 서버 사이드 페이징 활성화
pageSize: 10, // 1페이지 요청시 page=1, pageSize=10 요청 파라메터 전달
serverSorting: true, // 서버 사이드 정렬 활성화
// sort[0][field]=필드명, sort[0][dir]=asc|desc 요청 파라메터 전달
transport: {
read: {
type: 'post',
dataType: 'json',
url: 'someUrl'
// data: { userDefinedParameter: someValue }
// 사용자정의 요청 파라메터 전달
}
}
schema: {
data: function(response) { return response.data; } // 그리드에 출력될 결과 데이터, 응답 데이터의 data 값을 맵핑
total: function(response) { return response.total; } // 전체 페이지 수, 응답 데이터의 total 값을 맵핑
}
});
* DataSource 오브젝트에 로우 추가하기
someDataSource.add({ name: "John Smith", description: "Product Description", address: "123 1st Street" });
* DataSource URL 재설정 및 그리드 Refresh하기
dataSource.options.transport.read.url = url;
dataSource.read();
}
reloadKendoGrid(dataSource, 'url');
* 그리드 초기화하기
function resetKendoGrid(dataSource) {
dataSource.options.transport.read.url = '';
dataSource.data([]);
}
resetKendoGrid(dataSource);
* 그리드 오브젝트가 아닌 그리드가 바라보는 new kendo.data.DataSource()로 정의된 데이터소스 오브젝트에 직접 접근하여 초기화 수행
* 서버 사이드(Java/Spring MVC 3)에서 DataSource 요청에 응답하기
<Controller>
@RequestMapping(value = "someUrl", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
@ResponseBody
public Map<String, Object> response(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize) {
Map<String, Object> response = new HashMap<String, Object>();
try {
List<Map<String, Object>> result = someService.read(page, pageSize);
response.put("data", result);
if (Objects.equal(result.size(), 0)) {
response.put("total", 0);
} else {
response.put("total", result.get(0).get("TOTAL_ROW_COUNT"));
}
return response;
} catch (Exception ex) {
Map<String, Object> errorResponse = JsonUtil.createErrorResponse(ex);
return errorResponse;
}
}
* 서버 요청시 파라메터를 JSON 문자열로 전달하기
serverPaging: true,
serverSorting: true,
pageSize: 10,
sort: {
field: "CREATETIME",
dir: "desc"
},
transport: {
read: {
type: 'post',
dataType: 'json',
url: '',
contentType: 'application/json;charset=UTF-8'
},
parameterMap: function(data, operation) {
return JSON.stringify(data);
}
},
schema: {
data: function(response) {
return response.data;
},
total: function(response) {
return response.total;
}
}
});
* contentType: 'application/json;charset=UTF-8'가 명시되어야 서버에서 파라메터를 JSON 문자열로 인식 가능
* parameterMap은 Kendo UI Web Grid의 파라메터 포맷을 커스터마이징하는 역할을 수행하는 프라퍼티
* return JSON.stringify(data);을 통해 기본 파라메터 오브젝트인 data을 JSON 문자열로 변환하여 서버에 전달
- Total
- Today
- Yesterday
- chrome
- java
- 로드 바이크
- JHipster
- JavaScript
- Eclipse
- MySQL
- maven
- 평속
- bootstrap
- kotlin
- Kendo UI Web Grid
- 구동계
- spring
- node.js
- jsp
- Spring MVC 3
- 자전거
- Tomcat
- jpa
- DynamoDB
- Kendo UI
- graylog
- 태그를 입력해 주세요.
- 로드바이크
- jstl
- 알뜰폰
- CentOS
- Docker
- Spring Boot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |