2014-03-02 45 views
0
var headers = [{ "mDataProp": "Agents" },{ "mDataProp": "Buyer" },{ "mDataProp": "Date" }]; 
$(document).ready(function() { 
    $('#data-table').dataTable({ 
     "bFilter": false, 
     "bLengthChange": false, 
     "iDisplayLength": 25, 
     "bJQueryUI": true, 
     "bServerSide": true, 
     "bProcessing": true, 
     "sPaginationType": "full_numbers", 
     "aoColumns": headers, 
     "sAjaxSource": '/report/TestPaging',   
    }); 
}); 

如果我刪除從我的代碼DataTable中正常產生的aoColumns,但是當我添加aoColumns我得到:數據表錯誤:「請求未知參數」

數據表警告(表ID =「數據表從數據來源:「)要求的未知參數 '代理' 的行0

HTML:

<table id="data-table"> 
       <thead> 
        <tr>       
         <th>tmp</th> 
         <th>tmp</th> 
         <th>tmp</th> 
        </tr> 
       </thead> 

       <tbody> 
       </tbody> 
      </table> 

如何配置頭名?我需要他們進行排序。 它們是否必須與「th」標籤中的相同?從我的控制器 JSON響應是可以的,因爲它呈現細當我除去aoColumns

我有串[] [](VAR數據),在每行3個字符串並返回它作爲

Json(new{ 
      sEcho = param.sEcho, 
      iTotalRecords = visitRepository.Query.Count(), 
      iTotalDisplayRecords = visitRepository.Query.Count(), 
      aaData = data 
     }, JsonRequestBehavior.AllowGet); 
+0

請問你的對象/ JSON是什麼樣子? – davidkonrad

+0

這應該不是問題,表沒有aoColumns行生成就好。 – Medo

+0

看到我的答案,我認爲,不 - 我確定 - 它實際上是**是一個JSON問題:)嘗試重命名其中一個JSON antries,只有一個col,就像第一個「Agents」,而你可以重現錯誤。 – davidkonrad

回答

2

誤差您遇到的問題是由JSON的內容與您的定義之間的不匹配造成的。您在aoColumns的目標名稱必須正好相同的JSON,在JSON 每個對象的長度必須等於列在原來的HTML表的數量。請參閱docs進行澄清。在你的情況下,JSON應該看起來像這樣:

[{ 
    "Agents": "tM4Ga0zX", 
    "Buyer": "ZKwMEiIa", 
    "Date": "K3lS2yn9" 
}, 
...] 

...而你的JSON並不遵循該方案。如果您沒有使用aoColumns,那麼數據將按索引插入,而不是按名稱插入 - 這就是爲什麼沒有它的情況下它會爲您工作。

您配置標題名稱(標題)由sTitle屬性:

aoColumns: [ 
    { mDataProp: "Agents", sTitle : "Agents" }, 
    { mDataProp: "Buyer", sTitle : "Buyer" }, 
    { mDataProp: "Date", sTitle : "Date" } 
] 

瞭解該演示基於你的問題 - >http://jsfiddle.net/kLR7G/

+0

所以我不能只使用string [] []並將其作爲JSON返回? – Medo

+0

這是一個很好的答案(asp.net-mvc-3和sAjaxSource) - > http://stackoverflow.com/questions/7835960/load-asp-net-mvc-jsonresult-jquery-datatables。重要的是,爲了避免錯誤,形成'aaData'正確,嘗試鏈接中接受的答案中的建議,並將'echo','iTotalRecords'等出去。 – davidkonrad

+0

問題在於我的列沒有預先設置,它們可能因許多其他條件而變化。我希望只命名標題,這樣我就可以用動態linq進行排序,但格式化json會對這種格式有點困難 – Medo

相關問題