jsgrid 에서 grid 파싱 후 merge function 을 호출 할 이벤트는 onRefreshed 이다.
$("#jsGrid").jsGrid({
... 옵션들
,
onRefreshed: function (args) {
gridMerge();
}
});
onRefreshed 이후 호출되는 grid merge 함수
function gridMerge()
{
var classNameMap = new Object();
var gridRowTag = "#jsGrid > div.jsgrid-grid-body > table > tbody > tr";
var gridRows = $(gridRowTag);
$.each(gridRows, function (index, item) {
var className = $(this).attr("class").replace(/[^0-9]/g, '');
if (className !="" && classNameMap[className] == undefined)
classNameMap[className] = $(gridRowTag + "." + className).length;
});
//console.log("classNameMap : " + JSON.stringify(classNameMap));
$.each(classNameMap, function (index, item) {
if (parseInt(item) > 1)
{
//table rows 중에서 현재 rowspan 이 들어가야하는 row 의node index 가져오기
var firstIndex = $(gridRowTag).index($(gridRowTag + "." + index + ":eq(0)"));
for (var rowIndex = 0; rowIndex < item; rowIndex++) {
var trRowIndex = firstIndex + rowIndex;
if (rowIndex == 0) {
$(gridRowTag + ":eq(" + trRowIndex + ")." + index + " > td:eq(0)").attr("rowspan", item);
$(gridRowTag + ":eq(" + trRowIndex + ")." + index + " > td:eq(4)").attr("rowspan", item);
$(gridRowTag + ":eq(" + trRowIndex + ")." + index + " > td:eq(5)").attr("rowspan", item);
} else {
$(gridRowTag + ":eq(" + trRowIndex + ")." + index + " > td:eq(0)").remove();
// 헷갈림 주의~!!!
// td:eq(0) 요소가 삭제되어 index 가 하나 줄어들었다.
//앞에서 요소하나 삭제함. $(gridRowTag + ":eq(" + trRowIndex + ")." + index + " > td:eq(4)").attr("rowspan", item); 에 해당하는 td는 td:eq(3)이 됨.
$(gridRowTag + ":eq(" + trRowIndex + ")." + index + " > td:eq(3)").remove();
//앞에서 요소하나 삭제함. $(gridRowTag + ":eq(" + trRowIndex + ")." + index + " > td:eq(5)").attr("rowspan", item); 에 해당하는 td는 td:eq(3)이 됨.
$(gridRowTag + ":eq(" + trRowIndex + ")." + index + " > td:eq(3)").remove();
}
}
}
});
}
'js > jsGrid' 카테고리의 다른 글
[jsgrid] custom type 만들기 (0) | 2017.01.06 |
---|---|
[jsgrid] json datetime column convert to javascript datetime on with custum format (0) | 2016.12.17 |
[jsGrid] 우측 스크롤바 없애기 (0) | 2016.10.14 |
[jsgrid] header sort 마크 제거 (0) | 2016.10.04 |
[jsgrid] options fields 변경하기 (0) | 2016.10.04 |