두 개의 html 페이지가 있고 동일한 데이터가있는 테이블이 있습니다. 다른 순서 및 일부 열은 한 테이블에 숨겨져 다른 테이블에는 숨겨지지 않습니다. 두 테이블의 초기 정렬을 다른 테이블 정렬을 기반으로하고 싶습니다. 현재 sortEnd에서 sortList와 비슷한 2 차원 배열을 만드는 스크립트가 있습니다. 첫 번째 배열의 인덱스 대신에 열의 이름이 대체됩니다. 그런 다음이 배열을 sessionStoreage에 저장하여 두 번째 html 페이지에서이 배열에 액세스 할 수 있습니다. 그러나이 배열을 다시 변환하여 열 이름이 두 번째 테이블의 적절한 인덱스로 다시 변경되도록하는 방법이 확실하지 않습니다. 나는 tablesorter의 Mottie 포크를 사용하고 있습니다. 아래는 다른 HTML 페이지로 보낼 2 차원 배열을 만들기 위해 만든 첫 번째 스크립트입니다.Jquery tablesorter : 서로 다른 html 페이지에있는 두 개의 테이블에 정렬 순서를 유지하는 방법 (헤더가 동일하지만 순서와 일부가 숨겨져있는 것)
<script>
$(document).ready(function()
{
var currentSort;
$("#myTable").tablesorter({
widthFixed: false,
theme: "blue",
sortReset : true,
widgets: ['stickyHeaders'],
widgetOptions: {
stickyHeaders_addResizeEvent: true
}
}).bind("sortEnd", function(event) {
var table = event.target,
currentSort = table.config.sortList;
// target the first sorted column
var columnNum;
var columnName;
var currentSortwColumnNames = [[],[]];
for(var x = 0; x < currentSort.length; x ++)
{
if (!currentSort[x])
{
currentSort[x] = [];
}
if (!currentSortwColumnNames[x])
{
currentSortwColumnNames[x] = [];
}
columnNum = currentSort[x][0];
columnName = $(table.config.headerList[columnNum]).text();
currentSortwColumnNames[x][0] = columnName;
currentSortwColumnNames[x][1] = currentSort[x][1];
}
console.log(currentSortwColumnNames.toString());
sessionStorage.setItem("currentSortwColumnNames", currentSortwColumnNames);
})
}
);
</script>
그러나 문제는 sortList가 열 인덱스를 보유하고있는 2 차원 배열이고 오름차순 또는 내림차순 정렬 인 경우 문제입니다. 그래서 다른 배열을 만들었지 만 인덱스 대신 열 이름으로 열 인덱스를 대체했습니다. 두 번째 html 페이지에서 역순으로 처리해야하지만 어떻게 처리해야하는지 확신 할 수 없습니다. jQuery를 사용하여 헤더의 열 이름 배열을 가져와 sessionStorage에 저장 한 currentSortwColumnNames 배열과 비교해야한다고 생각합니다. – DHarsh
그래서 JSON.string을 문자열에 저장하고 세션에 저장하고 필요할 때 JSON.parse하십시오. 문자열에서 배열로의 변환을 처리합니다. – balint