2

datatables.net のテーブル プラグインを使用しています。複雑なヘッダー列に問題があり、使用すると次のエラーが発生します。

キャッチされていない TypeError: jquery.dataTables.js 行 820 で未定義のメソッド 'fnSetData' を呼び出せません

この html コード (実際にはこれはテンプレートです)

    <!-- BEGIN:main -->
<table id='myTable' style='width: 100%'>
    <thead>
        <tr>
            <th rowspan="2"></th>
            <th colspan="4">Contract Details</th>
            <th colspan="4">Delivery</th>
            <th rowspan="2">Basis Terminal Month</th>
            <th colspan="5">Fixed</th>
            <th colspan="4">Unfixed</th>
            <th colspan="3">Trigger</th>
            <th colspan="2">Payment</th>
            <th colspan="2" rowspan="2"></th>
        </tr>
        <tr>
            <th>Contract Ref</th>
            <th>Supplier/Buyer</th>
            <th>Grade</th>
            <th>Days Pending</th>
            <th>Tons</th>
            <th>Delivered</th>
            <th>Balance</th>
            <th>Status</th>
            <th>Tons</th>
            <th>Contract Price</th>
            <th>Contract FOB Price</th>
            <th>Mark To Market Price</th>
            <th>Outright Exposure FOB</th>
            <th>Tons</th>
            <th>Contract FOB Diff</th>
            <th>Mark To Market FOB Diff</th>
            <th>Differential Exposure FOB</th>
            <th>Strike Price</th>
            <th>Variance</th>
            <th>Days</th>
            <th>Due Date</th>
            <th>Days Late</th>
        </tr>
    </thead>
    <tbody>
        <!-- BEGIN:row -->
        <tr id="row_{id}">
            <td>{count}</td>
            <td>{ref_number}</td>
            <td>{supplier}</td>
            <td>{grade}</td>
            <td class="formatNumber alignRight">{pending_day}</td>
            <td class="formatNumber alignRight">{contract_tons}</td>
            <td  class="formatNumber alignRight">{delivered_tons}</td>
            <td  class="formatNumber alignRight">{pending_tons}</td>
            <td><input type="checkbox" id="rd_{id1}" value="{delivery_status}" {checked}/></td>
            <td class="alignCenter">{terminal_month}</td>
            <td  class="formatNumber alignRight">{fixed_tons}</td>
            <td  class="formatNumber alignRight">{contract_price}</td>
            <td  class="formatNumber alignRight">{contract_fob_price}</td>
            <td  class="formatNumber alignRight">{market_price}</td>
            <td  class="formatNumber alignRight">{outright_fob}</td>
            <td  class="formatNumber alignRight">{unfixed_tons}</td>
            <td  class="formatNumber alignRight">{contract_fob_diff}</td>
            <td  class="formatNumber alignRight">{market_fob_diff}</td>
            <td  class="formatNumber alignRight">{differential_fob}</td>
            <td  class="formatNumber alignRight">{strike_price}</td>
            <td  class="formatNumber alignRight">{variance}</td>
            <td  class="formatNumber alignRight">{trigger_days}</td>
            <td>{payment_due_date}</td>
            <td  class="formatNumber alignRight">{payment_days_late}</td>
            <td><input type="button" value="Detail" onclick="ContractDetail('{id2}')"/></td>
            <td><input type="button" value="Traffic" onclick="trafficMovement('{id3}')"/></td>
        </tr>
        <!-- END:row -->
    </tbody>
</table>
<input type="hidden" id="action" name="action" value=""/>
<input type="hidden" id="contract_id" name="contract_id" value=""/>
<!-- END:main -->

これは私がデータテーブルを呼び出すjavascriptです

$(document).ready(function() {
    $("#myTable").dataTable();
});

何が問題なのかわかりません。datatables.net で見たのですが、datatable() を呼び出すことで複雑なヘッダー列をサポートしているとのことです。私の問題はhtmlコードにあると思います。

4

1 に答える 1

2

問題は、ボタンに追加する最後の 2 つの列のヘッダーにあります。両方として宣言していてrowspan="2"colspan="2"DataTables はそれを単一の列として解釈しています。

単純に

<th colspan="2" rowspan="2"></th>

することが:

<th rowspan="2"></th>
<th rowspan="2"></th>

そして、あなたは行ってもいいでしょう。

于 2013-05-08T19:12:51.337 に答える