如何使用datatables服务器端处理数据表敲除扩展?

时间:2013-05-27 06:21:17

标签: knockout.js datatables

我在这里使用datatables knockout扩展名:https://github.com/CogShift/Knockout.Extensions

我试图通过发出ajax请求从服务器检索json,然后使数组可观察。 但是它说aaData是未定义的。

我的表格定义:

 <table id="table" data-bind="dataTable: { 
            dataSource: getData, 
            aaData:observableArray,           
            columns: [
                'Column1', 
                'Column2', 
                'Column3', 
                { mDataProp: 'IsSelected', bSortable: false }
            ]
        }">
            <thead>
                <tr>
                    <td>Column 1</td>
                    <td>Column 2</td>
                    <td>Column 3</td>
                    <td>Select All <input type="checkbox" name="chkSelectAll" data-bind="checked: selectAll"  /></td>
                </tr>
            </thead>
            <tbody>
            </tbody>
        </table>

这是ajax电话:

this.getData = function (options, callback) {
            $.ajax({
                url: '/Home/Contact',
                data: ko.toJSON(options),
                type: "POST",
                contentType: "application/json charset=utf-8",
                dataType: "json",
                success: function (responseData, textStatus, jqXHR) {

                    for (key in responseData) {
                        var item = {
                            id:responseData[key].categoryid,
                            name: responseData[key].categoryname,         // Push the key on the array
                            value: responseData[key].description // Push the key's value on the array
                        };
                        self.dataArray.push(item);
                    }
                    $('#table').dataTable().fnAddData(self.observableArray());


                }
            });
        }

1 个答案:

答案 0 :(得分:1)

确保使用版本1.9.1较新的版本不起作用。 您应该使用回调而不是手动添加数据

callback({
    Data: result,
    TotalRecords: count,
    DisplayedRecords: displayedCount
});

我已经对这里找到的扩展器做了一些修复。 https://github.com/AndersMalmgren/Knockout.Extensions 最大的变化是它允许您访问与DOM分离的数据表对象