javascript
  • jquery
  • object
  • datatables
  • 2011-03-17 2 views 0 likes 
    0

    와 함께 사용하기 위해 문자열에서 자바 스크립트 객체를 생성이 질문은 플러그인은 여기에 관한됩니다 : 그래서 코드가 오류없이하지만 클래스 "qwer"함께 잘 작동는 datatables

    var hidecols = '{"sClass": "Hide", "aTargets": [0]},{"sClass": "asdf", "aTargets": [1]},{"sClass": "qwer", "aTargets": [2]}'; 
    
    var hidecolsobj = eval('(' + hidecols + ')'); 
    
    
         var oTable = $('#MainContent_OverviewTable').dataTable({ 
          "sPaginationType": "full_numbers", 
          "bProcessing": true, 
          "bServerSide": true, 
          "aoColumnDefs": 
          [ 
           hidecolsobj, // <--------- *** HERE *** 
          ], 
          "sAjaxSource": "Services/Service.svc/GetDataTableOutputOverview", 
          "fnServerData": function (sSource, aoData, fnCallback) { 
           var jsonAOData = JSON.stringify(aoData); 
           $.ajax({ 
            type: "POST", 
            async: true, 
            url: sSource, 
            contentType: "application/json; charset=utf-8", 
            data: '{"Input":' + jsonAOData + '}', 
            dataType: "json", 
            success: function (msg) { 
             fnCallback(msg); 
            }, 
            error: function (XMLHttpRequest, textStatus, errorThrown) { 
             alert(XMLHttpRequest.status); 
             alert(XMLHttpRequest.responseText); 
            } 
           }); 
          } 
         }); 
    

    http://www.datatables.net/usage/columns는 단 하나입니다 내 테이블에 적용되고있어. 나는 이것을 시험해 보았고, 그것은 나의 객체 목록에 마지막으로 나타나는 클래스만을 적용한다. 각 열에 hidecols 변수에 정의 된 클래스가 있어야합니다. 어떻게해야합니까?

    이는 Datatables 웹 사이트에서 문서에 표시하는 방법입니다

    $('#example').dataTable({ 
        "aoColumnDefs": [ 
         { "sClass": "my_class", "aTargets": [ 0 ] } 
        ] 
    }); 
    

    편집 :

      "aoColumnDefs": 
          [ 
           { "sClass": "Hide", "aTargets": [0] }, 
           { "sClass": "asdf", "aTargets": [1] }, 
           { "sClass": "qwer", "aTargets": [2] } 
          ], 
    

    위의 편집이 제대로 작동하지만이 나를 위해 옵션을 선택하지 않습니다. 동적으로 문자열 hidecols를 빌드 할 수 있어야합니다.

    답변

    1

    당신은 DataTables에게 aoColumnDefs 매개 변수의 문자열을 전달하고 있습니다. hidecols "문자열"주위의 인용 부호를 제거하여 객체 배열로 만드십시오. 그러면 악마 (평가)의 필요성이 제거됩니다.

    var hidecols = [{"sClass": "Hide", "aTargets": [0]},{"sClass": "asdf", "aTargets": [1]},{"sClass": "qwer", "aTargets": [2]}]; 
    

    앨런

    +0

    흠은 ... 나는 평가를 제거하고 싶습니다,하지만 난 프로그래밍 방식의 경우 객체가 아닌 문자열을 hidecols을 구축 할 수 있습니까? – Robodude

    +0

    네, 가능합니다. 'hidecols.push ({ "sClass": "NewClass", "aTargets": [2]})와 같은 것입니다. 그것은 단지 배열을 조작하는 것입니다. – Allan

    +0

    오 -_- 예. 나는 그것을 알고 있었다! 나는 맹세한다! :) 고마워, 앨런! – Robodude

    0

    아! 나는 그것을하는 방법을 이해했다! 대신이 일을

    :

     "aoColumnDefs": 
         [ 
          hidecolsobj, // <--------- *** HERE *** 
         ], 
    

    내가이 일을해야합니다

    var hidecols = '[{"sClass": "Hide", "aTargets": [0]},{"sClass": "asdf", "aTargets": [1]},{"sClass": "qwer", "aTargets": [2]}]'; 
    var hidecolsobj = eval('(' + hidecols + ')'); 
          "aoColumnDefs": hidecolsobj, // <--------- *** HERE *** 
    
    관련 문제