테이블의 데이터를 jQuery DataTable에로드하려고합니다. 이를 위해 나는 코드 아래 적용한 :DataTable이 AJAX 호출에서받은 JSON 데이터를 기반으로 렌더링하지 않습니다.
HTML
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" />
</head>
<body>
<div style="width:90%;margin:0 auto">
<table id="mydatatable">
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Email Id</th>
<th>City</th>
<th>Country</th>
</tr>
</table>
</div>
<script src="~/scripts/jquery-3.2.1.min.js"></script>
<script src="~/scripts/jquery.validate.min.js"></script>
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
<script src="~/scripts/jquery-ui-1.12.1.min.js"></script>
<script>
$document.ready(function() {
var oTable = $("mydatatable").DataTable({
"ajax": {
url: "/Home/GetEmployees",
type: "get",
database: "json"
},
"columns": [
{ "data": "FirstName", "autowidth": true },
{ "data": "LastName", "autowidth": true },
{ "data": "EmailId", "autowidth": true },
{ "data": "City", "autowidth": true },
{ "data": "Country", "autowidth": true }
]
});
});
</script>
</body>
</html>
컨트롤러 내가 "// 홈/GetEmployees"에서 발생하고 있습니다
using MVC_CRUD.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MVC_CRUD.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult GetEmployees() {
using (MvcCRUDDBEntities dc = new MvcCRUDDBEntities()) {
var employees = dc.Employees.OrderBy(a => a.FirstName).ToList();
return Json(new { data = employees }, JsonRequestBehavior.AllowGet);
}
}
}
}
데이터입니다 :
{"data":[{"EmployeeId":4,"FirstName":"Ankit","LastName":"Agarwal","EmailId":"[email protected]","City":"Pune ","Country":"India "},{"EmployeeId":2,"FirstName":"Niraj","LastName":"Desai","EmailId":"[email protected]","City":"Bilimora ","Country":"India "},{"EmployeeId":1,"FirstName":"Pratik","LastName":"Soni","EmailId":"[email protected]","City":"Valsad ","Country":"India "},{"EmployeeId":3,"FirstName":"Shezad","LastName":"Khan","EmailId":"[email protected]","City":"Manglore ","Country":"India "}]}
하지만 whe n 응용 프로그램을 실행하면 DataTable에 데이터가 없습니다.
여기서 원하는 데이터는 응용 프로그램 시작시 DataTable에로드해야합니다. StackOverflow에서 사용할 수있는 기존 솔루션을 시도했지만 그 중 아무도 나를 도왔습니다.
업데이트 : 디버깅하는 동안 HomeController.cs 파일에서 "GetEmployees"메서드가 호출되는 이벤트가 아닌 것으로 나타났습니다. 당신이 id="mydatatable"
와 table
을 가지고 있기 때문에
var oTable = $("mydatatable").DataTable
var oTable = $("#mydatatable").DataTable
당신의 JS 테이블 초기화는'$ ("#의 mydatatable")해야한다 대신 $'의 DataTable' ("mydatatable") DataTable' – i3lai3la
i3lai3la @ :.. 내 코드를 업데이트하여 그것을 시도. 하지만 여전히 작동하지 않습니다. –
답변에 따라 질문의 코드를 변경하지 마십시오 (대답이 무효화됩니다) –