在jQuery数据表中传递Id列作为参数?

时间:2013-07-22 15:19:22

标签: jquery jquery-plugins parameters jquery-data

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

到目前为止,我可以通过按钮输入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" />'; }
                }   
                ]
            });
        });
    };

表变量如下所示:

enter image description here

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

1 个答案:

答案 0 :(得分:2)

mRender函数有3个参数:

  

函数 - 只要DataTables执行给定的函数   需要设置或获取列中单元格的数据。功能   有三个参数:

     

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

     

{string}请求的类型呼叫数据 - 这将是   '过滤','显示','类型'或'排序'。

     

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

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

试试这个:

{ 
  "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" />'; }
}