0

サーバーから返されるJSON(dataTableの入力に使用)は次のようになります。

[
   {
      "id":1,
      "attributeType":{
         "id":1,
         "name":"test1",
         "tag":"test-type",
         "is-dog":false
      },
      "attributeValue":{
         "id":null,
         "name":"blah",
         "tag":"BLAH"
      },
      "buzz":1,
      "fizz":"53abc"
   }
]

ただし、次のフィールドのみを表示したいと思います。

  • id
  • attributeValue.name
  • buzz

さらに、次の順序(左から右)で表示したいと思います。

  • buzz
  • attributeValue.name
  • id

これらの3つのフィールドのみを選択し、それらを希望の順序で表示するようにdataTableを構成するにはどうすればよいですか?前もって感謝します!

4

1 に答える 1

2

これを達成するためにできることは、テーブルを動的に構築し、これをデータテーブルに送信することです。

次の例では、Json が jQuery Ajax 呼び出しで返され、応答に複数の項目があると想定しています。

$.ajax({
    type: "POST",
    url: "Controller Url",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
...
...
success: function (response) {

// Assuming you need to parse, you may not need to depending on how the data is returned.
var parsedJson = $.parseJSON(response); 
// Empty var to hold the table content.
var buildTable = "";

$.each(parsedJson, function(i)) {
    buildTable += "<tr>";
    buildTable += "<td>" + parsedJson[i].buzz + "</td>";
    buildTable += "<td>" + parsedJson[i].attributeValue.name + "</td>";
    buildTable += "<td>" + parsedJson[i].id + "</td>";
    buildTable += "</tr>";
});

// Now fill your datatable with the table content in the order you want and with only the fields required.
$("#datatableContent").append(buildTable);

// Configure your datatable
$('#datatableContent').dataTable({ });

} //end success

});// end ajax

ビューには次のものが含まれます。

<table id="datatableContent">
<thead>
    <tr>
        <th>Buzz</th>
        <th>Name</th>
        <th>ID</th>
    </tr>
</thead>
<tbody>
</tbody>

心に留めておくべきことの 1 つ$('#datatableContent').dataTable({ });は、ajax 呼び出しの成功に構成部分を配置した場合に問題が発生したことです。成功のラインの後に地雷を配置しましたが、$("#datatableContent").append(buildTable);毎回完璧に機能します。

于 2012-10-12T14:01:36.563 に答える