1

我正在使用插件“DataTables”,我想逐行添加图像,当用户单击时,调用另一个 url。

我按照 www.datatables.net 的示例进行操作,但出现以下错误:

DataTables 警告(表 id = 'myDataTable'):从第 0 行的数据源请求未知参数“4”。

记录显示在屏幕上

<h2>Index</h2>

<script type="text/javascript">
    $(document).ready(function () {

        var oTable = $('#myDataTable').dataTable({
            "bServerSide": true,
            "sAjaxSource": "AjaxHandler",
            "bProcessing": true,
            "sPaginationType": "full_numbers",   
            "aoColumns": [
                        { "mDataProp": "ID", "bSortable": false },
                        { "mDataProp": "Nome", "sTitle": "Identificação do produto" },
                        { "mDataProp": "Address", "sTitle": "Descrição do produto" },
                        { "mDataProp": "Town" },
                        { "fnRender": function (o) {return '<a href=/Produto/Detalhar/' + o.aData[0] + '>' + 'More' + '</a>';}} 
            ],
        });
    });
</script>


<table id="myDataTable" class="display">
    <thead>
        <tr>
            <th>ID</th>
            <th>Company name</th>
            <th>Address</th>
            <th>Town</th>
            <th>Action</th>
        </tr>
    </thead>
    <tbody> 
    </tbody>
</table>
4

2 回答 2

5

我正在使用 dataTables 版本 1.10.0-dev 并且接受的解决方案对我不起作用,因为 o.aData 未定义。相反,我拥有我在 o 中返回服务器端的 json 对象的所有属性。所以这是我的解决方案:

$(document).ready(function () {
    var oTable = $('#myDataTable').dataTable({
        "bServerSide": true,
        "sAjaxSource": "AjaxHandler",
        "bProcessing": true,
        "sPaginationType": "full_numbers",
        "aoColumns": [
            { "mData": "ID", "bSortable": false },
            { "mData": "Nome", "sTitle": "Identificação do produto" },
            { "mData": "Address", "sTitle": "Descrição do produto" },
            { "mData": "Town" },
            {
                "mData": null,
                "bSortable": false,
                "mRender": function (o) { return '<a href=/Produto/Detalhar/' + o.Id + '>' + 'More' + '</a>'; }
            }
        ]
    });
});

我不知道这是否取决于新版本的 dataTables 或其他配置(但我的表以相同的方式配置......)。

于 2013-11-21T15:09:26.513 回答
4

我真的不知道数据表(还不够),但你应该这样尝试:{不确定 mDataProp 是否被弃用}

$(document).ready(function () {

        var oTable = $('#myDataTable').dataTable({
            "bServerSide": true,
            "sAjaxSource": "AjaxHandler",
            "bProcessing": true,
            "sPaginationType": "full_numbers",   
            "aoColumns": [
                        { "mData": "ID", "bSortable": false },
                        { "mData": "Nome", "sTitle": "Identificação do produto" },
                        { "mData": "Address", "sTitle": "Descrição do produto" },
                        { "mData": "Town" },
                        {   "mData": null,
                    "bSortable": false,
            "mRender": function (o) {return '<a href=/Produto/Detalhar/' + o.aData[0] + '>' + 'More' + '</a>';}
            }   
            ]
        });
    });

确保您的数据与您的列声明相符,您应该将 json 作为 ajax 响应,其中包含数据 ID、Nome、Address 和 Town。如果您的第一个数据是 id 而不是 ID,我认为您会收到一个错误。

于 2013-04-15T16:41:38.047 回答