2016-05-31 61 views
0
$(document).ready(function() { 
    $("#getViewReportButton").click(function() { 
     //alert("drop down = " + $('#ReportSelected').find(":selected").text()); 
     viewReports($('#ReportSelected').find(":selected").val()); 
    }); 
}); 

function viewReports(reportSelected) { 
    var controller = "PortalReports"; 
    alert("View Reports = " + reportSelected); 
    var tableSelector = "#datatable"; 

    var table = $(tableSelector).DataTable({ 
     "ajax": { 
      "url": $("#basePath").val() + controller + "/GetReport" 

      /*, "dataScr": "data", 
      "columns": [ 
       { "data": "MiPolicyTransactionId" }, 
       { "data": "PolicyReference" }, 
       { "data": "AgencyCode" }]*/ 
     } 
    }); 
} 

public JsonResult GetReport() 
     { 
      _context = new ReportDB(); 


      var result = _context.MiPolicyTransactions.Take(10).ToList(); 

      var theResults = 
       result.Select(
        x => 
         new 
         { 
          MiPolicyTransactionId = x.MiPolicyTransactionId, 
          AgencyCode = x.AgencyCode, 
          CompanyId = x.CompanyId 
         }).ToList(); 

      //var results = new { value = 3, text = "Hello" }; 
      return Json(new { data = theResults}, JsonRequestBehavior.AllowGet); 
     } 


<h2>@ViewBag.Title</h2> 
<p>Please choose a Report:</p> 
<form id="reportForm" method="post"> 
    <div class="fieldRow ui-widget-content ui-corner-all"> 
     <div class="field"> 
      @Html.DropDownListFor(x => x.ReportSelected, Model.ReportOptions, "Please Select") 
      <input id="getViewReportButton" type="submit" value="View Report" /> 
      <span id="searchLoader" class="ajaxLoader"></span> 
     </div> 
    </div> 
</form> 
<br /> 
<table id="datatable" class="display DataTable"> 
    <thead> 
     <tr> 
      <th>MiPolicyTransactionId</th> 
      <th>PolicyReference</th> 
      <th>AgencyCode</th> 
     </tr> 
    </thead> 
    <tbody></tbody> 

</table> 

我上面的代碼慣於渲染,並給出了0行請求未知參數「0」有關此錯誤的詳細信息,請參閱http://datatables.net/tn/4MVC AJAX請求返回未知參數錯誤

我我試圖徒勞地改變一堆參數,但只是無法讓事情發揮作用。

{data: [{MiPolicyTransactionId: 18, AgencyCode: "CJPTEST", CompanyId: "BQ"},…]} 
data 
: 
[{MiPolicyTransactionId: 18, AgencyCode: "CJPTEST", CompanyId: "BQ"},…] 
0 
: 
{MiPolicyTransactionId: 18, AgencyCode: "CJPTEST", CompanyId: "BQ"} 
1 
: 
{MiPolicyTransactionId: 19, AgencyCode: "CJPTEST", CompanyId: "BQ"} 
2 
: 
{MiPolicyTransactionId: 20, AgencyCode: "CJPTEST", CompanyId: "BQ"} 
3 
: 
{MiPolicyTransactionId: 21, AgencyCode: "CJPTEST", CompanyId: "BQ"} 
4 
: 
{MiPolicyTransactionId: 22, AgencyCode: "CJPTEST", CompanyId: "BQ"} 
5 
: 
{MiPolicyTransactionId: 23, AgencyCode: "CJPTEST", CompanyId: "BQ"} 
6 
: 
{MiPolicyTransactionId: 24, AgencyCode: "CJPTEST", CompanyId: "BQ"} 
7 
: 
{MiPolicyTransactionId: 25, AgencyCode: "CJPTEST", CompanyId: "BQ"} 
8 
: 
{MiPolicyTransactionId: 26, AgencyCode: "CJPTEST", CompanyId: "BQ"} 
9 
: 
{MiPolicyTransactionId: 27, AgencyCode: "CJPTEST", CompanyId: "BQ"} 

的XHR預覽看起來不錯如上只是時消失的警告框給予錯誤是封閉的,我只是不能想別的!

第一個錯誤 First error

二錯誤 Second error

轉到這個

Goes to this

回答

0

從@davidkonra d出色的答案 Jquery DataTables.net: Failing to put negative int in table

您正在混合ajax選項和其他選項。取而代之的

ajax: { 
    url: '@Url.Content("~/api/cas/nodes/all/lastcondition/")', 
    "columns": [ 
     { "type" : "num", "data": "Id"}, 
     { "data": "Name" }, 
     { "data": "Alias" }, 
     { "data": "DateQuery" }, 
     { "type" : "num", "data": "Condition" }, 
     { "type" : "num", "data": "TimeSecLastCondition" } 
    ] 
}) 

你應該做的

ajax: { 
    url: '@Url.Content("~/api/cas/nodes/all/lastcondition/")' 
}, 
columns: [ 
    { "type" : "num", "data": "Id"}, 
    { "data": "Name" }, 
    { "data": "Alias" }, 
    { "data": "DateQuery" }, 
    { "type" : "num", "data": "Condition" }, 
    { "type" : "num", "data": "TimeSecLastCondition" } 
    ] 
}