2017-09-04 1 views
2

ajax 명령에서 jQuery Datatble을 채울 수 없습니다.jquery datatable은 webAPI에서 incorect json을받습니다.

이 webAPI 코드 (UtentiController)입니다 :

' GET: api/Utenti 
    <HttpGet> 
    Public Function GetUtentis() As IEnumerable(Of Utenti) 
     Using WFe As WorkForceEntities = New WorkForceEntities 
      Return WFe.Utentis.ToList 
     End Using 
    End Function 

이있다 클라이언트 측 코드 :

<script> 
    $(document).ready(function() { 
     var oTable = $('#myDatatable').DataTable({ 
      paging: true, 
      sort: true, 
      searching: true, 
      "ajax": { 
       "url": '/api/utenti/', 
       "type": "get", 
       "datatype": "json", 
       error: function (xhr, status, error) { 
        alert(xhr.responseText); 
       } 
      }, 
      "columns": [ 
       { "data": "Nome", "autoWidth": true }, 
       { "data": "Cognome", "autoWidth": true }, 
       { "data": "Username", "autoWidth": true }, 
       { "data": "GruppoDiLavoro", "autoWidth": true }, 
       { "data": "ProfiloFunzionalità", "autoWidth": true }, 
       ] 
     }) 


    }) 
</script> 

내가 문제가 JSON 문자열을 생각합니다. 초기 문자열을 누락 아약스 명령 반환 잘못된 JSON, { "데이터"

[ { "IDutente": 2, "Operatore": "관리자", "암호": "1234 " "LivelloDiAccesso ": 1, "놈 ":"관리자 ", "Cognome ":"관리자 ", "사용자 이름 ":"관리자 ", "GruppoDiLavoro ":"관리자 ", "ProfiloFunzionalità " "Admin", "Attivo": true, "DataCreazione": "2017-08-30T00 : 00 : 00", "DataScadenza": "2025-12-31T00 : 00 : 00", "메일": "아무것도" }, { "IDutente": 3, "Operatore": "MS", "암호" "1234" "LivelloDiAccesso"2 "놈": "관리자" "Cognome": "S" "아이디": "M" "GruppoDiLavoro": "관리자" " "사실" "DataCreazione": "2017-08-30T00 : 00 : 00", "DataScadenza": "2025-12-31T00 : 00 : 00", " 메일 ":"없음 " } ]

이렇게 json 파일을로드하면 ("ajax": "../UtentiData.JSON "가)

{ "데이터 "[ { "용자 ID ": 2 "운영자 ":"관리자 ", "암호 ","1234 ", "LivelloDiAccesso " 1, "이름": "관리자", "성": "관리자", "사용자 이름": "관리자", "GruppoDiLavoro": "관리자", "ProfiloFunzionalità": "관리자", "활성 "사실, "DateCreated ":"2017-08-30T00 : 00 : 00 ", "DataScadenza ":"2025-12-31T00 : 00 : 00 ", "메일": "아무것도" }, { 은 "용자 ID": 3, "운영자", "MS", "암호", "1234", "LivelloDiAccesso": 2 "이름" "관리자", "성", "S", "사용자 이름", "M", "GruppoDiLavoro": "관리자", "ProfiloFunzionalità": "관리자", "활성"사실, "DateCreated ":"2017-08-30T00 : 00 : 00 ", "DataScadenza ":"2025-12-31T00 : 00 : 00 ", "메일 ":"아무것도 " }]}

012 3,516,

코드 작업도하고, jQuery를 올바르게 DataTable을 채우기입니다.

내가 JSON WebAPI 종료와 함께 작동하기 위해 무엇을 할 수 있는가? 감사

답변

1

당신이 "평면 배열 데이터 소스"를 사용할 수 있습니다.

<script> 
$(document).ready(function() { 
    var oTable = $('#myDatatable').DataTable({ 
     paging: true, 
     sort: true, 
     searching: true, 
     "ajax": { 
      "url": '/api/utenti/', 
      "type": "get", 
      "dataSrc": "", 
      error: function (xhr, status, error) { 
       alert(xhr.responseText); 
      } 
     }, 
     "columns": [ 
      { "data": "Nome", "autoWidth": true }, 
      { "data": "Cognome", "autoWidth": true }, 
      { "data": "Username", "autoWidth": true }, 
      { "data": "GruppoDiLavoro", "autoWidth": true }, 
      { "data": "ProfiloFunzionalità", "autoWidth": true }, 
      ] 
    }) 


}) 

example를 참조하십시오

은 당신의 코드를 변경

.

+0

좋은! 작업 순서. 감사합니다. – Marco

+0

는 지금은 또 다른 문제가있다. 내가 '/ API/사용자/1'과 같은 URL을 사용하는 경우, datatables는 "테이블에 데이터 없음"보고! 문제는 어디에 있습니까? – Marco

+0

당신은 당신의 웹 브라우저에서 URL을 열고 데이터를 사용할 수있는 경우 확인 했습니까? – kangaro0

관련 문제