2014-02-12 1 views
0

테이블 초기에 내 Datatables의 열 번호를 변경하려고합니다 :배열을 사용하여 Datatables 열을 변경하는 올바른 형식은 무엇입니까?

여기서 retitle은 배열 (즉 길이 4의 배열)이고 c는 retitle (즉 c = 4)의 길이입니다. , 이전에 정의 된.

var atarget = []; 
    var stitle = []; 
    for(var i=0; i<c; i++){ 
    atarget[i] = i; 
    stitle[i] = retitle[i]; 
    } 

var oTable = $('#table_id').dataTable({ 
"bPaginate": false, 
"bProcessing": true, 
"bLengthChange": true, 
"bFilter": true, 
    "bRetrieve": true, 
"bInfo": false, 
"bAutoWidth": false, 
"bServerSide": true, 
"sDom": '<"top"iflp<"clear">>rt<"bottom"iflp<"clear">>', 
"aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]], 
"sAjaxSource": './aadata.txt', 
"aoColumnDefs": [ 
    {"sTitle":stitle,"aTargets":aTarget} 
    ] 

}); 

하지만 작동하지 않습니다.

답변

0

나는 HTML 테이블을 초기화하는 대신 Datatables의 설정을 변경하는 방식을 변경하여 문제를 해결했다.

내가 한 일은 : 먼저 기존 테이블과 테이블 래퍼를 제거하십시오!

$('#table_id').remove(); 
$('#table_id_wrapper').remove(); 

그런 다음 새 테이블을 초기화하십시오. 데이터에 따라 헤더/본문 형식을 설정하십시오.

var content = "<table id='table_id' class='display datatable' style='width:100%;'><thead>"; 
content +='<tr>'; 


re = re.substring(0,re.length-1); 
// alert(re); 
var retitle = re.split(","); 
    alert (retitle + 'x'); 
    var c = retitle.length; 
    var atarget = []; 
    var stitle = []; 
    for(var i=0; i<c; i++){ 
    atarget[i] = i; 
    stitle[i] = retitle[i]; 
    content += '<td>' +retitle[i] + '</td>'; 

    } 

    content +=' </tr></thead>'; 
    content +='<tbody></tbody>' 
    content += "</table>"; 

마지막으로 웹 페이지에 표를 추가하십시오. 여기에 내 탭에 붙였습니다 :

$('#tab3').append(content); 

그런데 고맙습니다.

0

이 같은 설정을 변경할 수 있습니다

var oTable; 

$(document).ready(function() { 
    $('.something').click(function() { 
     oTable._iDisplayLength = 50; 
     oTable.fnDraw(); 
    }); 

    oTable = $('#table_id').dataTable(); 
}); 
+0

답장을 보내 주셔서 감사합니다. '대상'을 변경하려면 무엇을 작성해야합니까? 이 링크에 따르면 : https : //datatables.net/forums/discussion/11451/changing-aocolumndefs-parameters-of-a-present-table/p1, aoColumnDefs는 변경할 수 없습니까? –

+0

그럼이게 네가 할 수있는 일이다. bDestroy를 사용하여 테이블을 삭제하고 새 초기화 옵션을 사용하여 테이블을 다시 작성하십시오. –

+0

작동하지만, "aoColumnDefs"를 포맷 할 때 여전히 문제가 있습니다. 질문을 편집하고 위의 코드를 변경했습니다. 제발 좀 봐 주실 래요? –

관련 문제