0

我已经用 jQuery 数据表构建了一个表,我想要一个按钮来执行一个函数。

到目前为止,我可以让按钮进入 jquery 函数,但它们总是通过参数 null 传递。

我正在尝试将 GoodNumberId 传递给函数。

function GetGoods() {

        $.post("GetGoods", function (GoodsDS) {
            var obj = jQuery.parseJSON(GoodsDS);
            var table = obj.Table;

            $('#demo').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>');
            $('#TableWrapper').dataTable({
                "bJQueryUI": true,
                "sPaginationType": "full_numbers",
                "bProcessing": true,
                "bDeferRender": true,
                "aaData": table
             ,
                "aoColumns": [
                { "mDataProp": "GoodNumberId", "sTitle": "Goods ID" },
                { "mDataProp": "SerialNumber", "sTitle": "Serial Number" },
                { "mDataProp": "Make", "sTitle": "Make" },
                { "mDataProp": "Model", "sTitle": "Model" },
                { "mDataProp": "Description", "sTitle": "Description" },
                //{ "mDataProp": "IMEINumber", "sTitle": "IMEINumber" },
                { "mDataProp": "Condition", "sTitle": "Condition" },
               // { "mDataProp": "DistinguishingMarks", "sTitle": "DistinguishingMarks" },
               // { "mDataProp": "OtherFeatures", "sTitle": "OtherFeatures" },
                //{ "mDataProp": "Status", "sTitle": "Status" },
                { "mDataProp": "ItemStatus", "sTitle": "Item Status" },
                { "mDataProp": "Price", "sTitle": "Price" },
                { "mDataProp": "TransactionDate", "sTitle": "Transaction Date" },
                //{ "mDataProp": "TransactionTypeId", "sTitle": "TransactionTypeId" },
                {"mDataProp": "TransactionDescription", "sTitle": "Transaction" },
                { "mData": null,
                    "bSortable": false,
                    "mRender": function (GoodNumberId) { return '<input id="btnDispose" type="button" onclick="Dispose(' + GoodNumberId +')" value="Dispose" />'; }
                }   
                ]
            });
        });
    };

表变量如下所示:

在此处输入图像描述

我需要每个按钮来传递它当前行的 ID 吗?

4

1 回答 1

2

mRender函数采用 3 个参数

function - 只要 DataTables 需要设置或获取列中单元格的数据,就会执行给定的函数。该函数接受三个参数:

{array|object} 行的数据源(基于 mData)

{string} 请求的类型调用数据 - 这将是“过滤器”、“显示”、“类型”或“排序”。

{array|object} 行的完整数据源(不基于 mData)

所以它采用的第一个参数是“基于mData”。由于您的 mData 为空,因此第一个参数为空。

试试这个:

{ 
  "mData": "GoodNumberId",
  "bSortable": false,
  "mRender": function (sourceData) 
     { return '<input id="btnDispose" type="button" onclick="Dispose(' 
           + sourceData +')" value="Dispose" />'; }
} 

编辑 要包括每个评论的状态,试试这个:

{ 
  "mData": "GoodNumberId",
  "bSortable": false,
  "mRender": function (sourceData, dataType, fullData) 
     { 
        if (fullData.Status == 'Disposed') // or whatever
            return '&nbsp';
        else
            return '<input id="btnDispose" type="button" onclick="Dispose(' 
           + sourceData +')" value="Dispose" />'; }
} 
于 2013-07-22T16:26:48.520 回答