레이블이 자바스크립트인 게시물을 표시합니다. 모든 게시물 표시
레이블이 자바스크립트인 게시물을 표시합니다. 모든 게시물 표시

2017년 11월 9일 목요일

jqGrid 페이징 자바 셋업




/**
 * SJJO 제작. 2014.09.17
 * jqGrid 페이징 쿼리날릴때 셋업
 * 서비스(뷰) -> DB 쿼리 
 * 쿼리에 필요한 변수 startPage(시작 로우), endPage(끝 로우), sidx(정렬 컬럼명), sord(오름차순 내림차순)
 * page : 현재 페이지
 * rows : 한페이지당 로우 갯수
 * @param map
 * @return
 */
public Map jqGridPagingMap(Map map) {
double rows = (Integer) map.get("rows");
int page= (Integer) map.get("page");
Object searchObj  = map.get("_search");
String sidx = (String)map.get("sidx");
String sord = (String) map.get("sord");
int endPage = page * (int)rows;
int startPage = endPage - (int)rows + 1;
HashMap resultMap = new HashMap();
resultMap.put("startPage", startPage);
resultMap.put("endPage", endPage);
resultMap.put("page", page);
resultMap.put("sidx", sidx);
resultMap.put("sord", sord);
resultMap.put("rows", rows);
return resultMap;
}
/**
 * SJJO 제작. 2014.09.17
 * jqGrid 페이징 처리 view에 보내는 세팅
 * 서비스 -> 뷰
 * page: 현재 페이지
 * total : 총 페이지
 * records : 로우 총 갯수
 * rows : 실제 데이터 리스트
 * @param map
 * @param list
 * @param count
 * @return
 */
public Map jqGridPagingResultMap(Map map, List list, double count) {
int page = (Integer) map.get("page");
double rows = (Double) map.get("rows");
int total = (int) Math.ceil(count/rows);
//system.out.println(list);
HashMap resultMap = new HashMap();
resultMap.put("page", page);
resultMap.put("total", total);
resultMap.put("records", count);
resultMap.put("rows", list);
return resultMap;



2016년 11월 28일 월요일

html5의 dataset, jquery attr, data 함수의 차이

https://developer.mozilla.org/ko/docs/Web/API/HTMLElement/dataset

IE 구버전에서는 제대로 동작을 안한다. 11부터 지원.

0. 간단하게

html5의 dataset과 jquery의 attr은 같은 데이터를 본다.

jquery의 data 는 jquery 내부 변수 사용하기때문에 태그에 있는 attribute와는 다른 결과가 나올수 있으니 주의를 해야한다.


1. HTML5의 dataset

HTML5에 태그내에 dataset 이라는 attribute가 추가되었다.

- html
<div id="test" data-name="a"></div>


위와 같이 data-name이 선언되어있다면,

html5의 dataset 함수를 사용하면 쉽게 데이터를 가져올 수 있다.


-! 실행
document.getElementById("test").dataset;

 -> 결과
{name: "a"}
와 같이 나오게 된다.


만약 데이터를 삽입하거나 수정하면..
-! 실행
document.getElementById("test").dataset.name = "b";

- html 결과
<div id="test" data-name="b"></div>


오브젝트형태로는 수정이 안된다.
document.getElementById("test").dataset = {name : "b"}



2. jquery의 attr

attr 함수는 태그내에 있는 태그 속성을 그대로 가져온다.

- html
<div id="test" data-name="a"></div>

-! 실행
$("#test").attr("data-name")
 -> 결과
   "a"



-! 실행
$("#test").attr("data-name", "b");
- 결과
<div id="test" data-name="b"></div>



3. jquery의 data

처음 data를 호출할때만 태그의 속성을 가져와서 넣어준다. 그러나 첫호출 후 태그내에 속성이 변경되도 jquery 의 data 함수로 호출하는 변수들은 변경이 되지 않고 jquery 독자적으로 변수를 가지고 있는다.

-
<div id="test" data-name="a"></div>

-! 실행
$("#test").data("name");  // string("name")을 넣으면 변수가 나오고 아무것도 안넣고 호출하면 전체 오브젝트가 나온다.
 -> 결과
  "a"


-! 실행
$("#test").data("name", "b"); 

- 결과
<div id="test" data-name="a"></div>
 실제 html의 태그내의 속성은 변경이 되지 않는다.


-! 실행
$("#test").data("name")
 -> 결과
  "b"
 그러나 jquery의 data 함수로 호출하면 변경되어있다.





- 정리
 지원브라우저가 IE11 이상이라면 html5의 dataset 함수를 써도 무방하다.