Jquery Datatable:添加的数据与已知列数不匹配

时间:2011-12-05 16:14:19

标签: jquery asp.net-mvc jquery-datatables

我正在尝试修复此代码的问题,该问题在呈现已查看并且数据表为空时触发警告作为js警报。我从来没有使用过这个插件,所以我真的不明白它是如何工作的......所以,基本上在视图方面是以下代码:

var dataTable;
$(function () {
dataTable = $('#dataTable').dataTable({
        "bProcessing": true,
        "bServerSide": true,
        "iDisplayLength": 100,
        "sAjaxSource": "@Url.Action("Attendance", "Reports")",
        "aoColumnDefs": [
        {"bSortable":false,"aTargets":[1,2,3,4,5,6,7,8,9,10,11,12,13,14]},
        {"bSearchable":false,"aTargets":[1,2,3,4,5,6,7,8,9,10,11,12,13,14]}
        ],
        "fnServerData":function(sSource, aoData,fnCallback){   
            var from= $('#DateSelect').val();
            var until= $('#DateSelect2').val();                
            aoData.push({"name":"From","value":from},{"name":"Until","value":until});                
            $.getJSON( sSource, aoData, function (json) {               
                fnCallback(json)
            });
        }           
    }).fnSetFilteringDelay(300);        
 });

下面的代码中有一个输入按钮,单击时会触发dataTable.fnDraw()并且工作正常。所以,基本上,这里唯一的问题是第一次渲染视图,因为dataTable为空并且显示警告。

以下是当表为空(导致警告显示)时从Controller到View的jSon响应示例:

 {"iTotalRecords":0,"iTotalDisplayRecords":0,"sEcho":1,"aaData":[[]]}

这是一个json在查询了一些运作良好的结果之后:

 {"iTotalRecords":17,"iTotalDisplayRecords":17,"sEcho":2,"aaData":[["Venue 1","<div align=center>30</div>","<div align=center>4</div>","<div align=center>13</div>","<div align=center>2</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>3</div>","<div align=center>1</div>","<div align=center>7</div>","<div align=center>0</div>","<div align=center>3</div>","<div align=center>14</div>"],["Venue 2","<div align=center>41</div>","<div align=center>1</div>","<div align=center>2</div>","<div align=center>0</div>","<div align=center>5</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>1</div>"],["Venue 3","<div align=center>20</div>","<div align=center>3</div>","<div align=center>15</div>","<div align=center>0</div>","<div align=center>5</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>8</div>","<div align=center>4</div>","<div align=center>4</div>","<div align=center>11</div>"],["Venue 4","<div align=center>46</div>","<div align=center>5</div>","<div align=center>10</div>","<div align=center>0</div>","<div align=center>5</div>","<div align=center>1</div>","<div align=center>20</div>","<div align=center>0</div>","<div align=center>7</div>","<div align=center>0</div>","<div align=center>15</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>28</div>"],["Venue 5","<div align=center>18</div>","<div align=center>9</div>","<div align=center>50</div>","<div align=center>2</div>","<div align=center>1</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>2</div>","<div align=center>0</div>","<div align=center>10</div>","<div align=center>1</div>","<div align=center>3</div>","<div align=center>21</div>"],["Venue 6","<div align=center>10</div>","<div align=center>4</div>","<div align=center>40</div>","<div align=center>1</div>","<div align=center>2</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>18</div>","<div align=center>3</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>4</div>","<div align=center>22</div>"],["Venue 7","<div align=center>44</div>","<div align=center>3</div>","<div align=center>6</div>","<div align=center>0</div>","<div align=center>7</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>1</div>","<div align=center>1</div>","<div align=center>1</div>","<div align=center>4</div>"],["Venue 8","<div align=center>8</div>","<div align=center>1</div>","<div align=center>12</div>","<div align=center>1</div>","<div align=center>2</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>6</div>","<div align=center>1</div>","<div align=center>2</div>","<div align=center>7</div>"],["Venue 9","<div align=center>23</div>","<div align=center>7</div>","<div align=center>30</div>","<div align=center>0</div>","<div align=center>1</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>8</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>15</div>"],["Venue 10","<div align=center>22</div>","<div align=center>1</div>","<div align=center>4</div>","<div align=center>0</div>","<div align=center>1</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>2</div>","<div align=center>1</div>","<div align=center>4</div>","<div align=center>1</div>","<div align=center>2</div>","<div align=center>7</div>"],["Venue 11","<div align=center>10</div>","<div align=center>2</div>","<div align=center>20</div>","<div align=center>1</div>","<div align=center>1</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>5</div>","<div align=center>2</div>","<div align=center>10</div>","<div align=center>2</div>","<div align=center>5</div>","<div align=center>17</div>"],["Venue 12","<div align=center>17</div>","<div align=center>3</div>","<div align=center>17</div>","<div align=center>0</div>","<div align=center>1</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>4</div>","<div align=center>1</div>","<div align=center>1</div>","<div align=center>7</div>"],["Venue 13","<div align=center>23</div>","<div align=center>10</div>","<div align=center>43</div>","<div align=center>4</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>13</div>","<div align=center>1</div>","<div align=center>5</div>","<div align=center>23</div>"],["Venue 14","<div align=center>21</div>","<div align=center>2</div>","<div align=center>9</div>","<div align=center>0</div>","<div align=center>1</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>15</div>","<div align=center>1</div>","<div align=center>1</div>","<div align=center>17</div>"],["Venue 15","<div align=center>6</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>1</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>8</div>","<div align=center>1</div>","<div align=center>6</div>","<div align=center>0</div>","<div align=center>1</div>","<div align=center>14</div>"],["Venue 16","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>2</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>2</div>"],["Venue 17","<div align=center>25</div>","<div align=center>6</div>","<div align=center>24</div>","<div align=center>0</div>","<div align=center>2</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>0</div>","<div align=center>7</div>","<div align=center>3</div>","<div align=center>3</div>","<div align=center>13</div>"],["<b>TOTAL Venezuela</b>","<div align=center><b>364</b></div>","<div align=center><b>61</b></div>","<div align=center><b>16</b></div>","<div align=center><b>11</b></div>","<div align=center><b>35</b></div>","<div align=center><b>1</b></div>","<div align=center><b>2</b></div>","<div align=center><b>0</b></div>","<div align=center><b>47</b></div>","<div align=center><b>8</b></div>","<div align=center><b>114</b></div>","<div align=center><b>16</b></div>","<div align=center><b>35</b></div>","<div align=center><b>223</b></div>"]]}

2 个答案:

答案 0 :(得分:2)

你应该发回来;

{"iTotalRecords":0,"iTotalDisplayRecords":0,"sEcho":1,"aaData":[]}

否则它不会被解释为空数组,而是一个带有一个元素的数组,它是一个空数组

答案 1 :(得分:1)

尝试发回"aaData":[]而不是"aaData":[[]](删除内部括号)