【问题标题】:Pass Id column in jQuery data tables as parameter?将 jQuery 数据表中的 Id 列作为参数传递?
【发布时间】:2013-07-22 15:19:21
【问题描述】:

我已经用 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?

【问题讨论】:

    标签: jquery jquery-plugins parameters jquery-data


    【解决方案1】:

    mRender 函数有 3 个参数:

    function - 给定的函数将在 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" />'; }
    } 
    

    编辑 要包含每个 cmets 的状态,请尝试以下操作:

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

    【讨论】:

    • :D 非常感谢。
    • 你知道我是否可以应用 if 语句来显示依赖于项目状态的按钮。它是该行中的列之一。 { "mDataProp": "状态", "sTitle": "状态" },
    • 我想是的。包括所有三个参数,例如 function(sourceData,dataType,fullData)。看看 fullData - 我相信你会想要类似“if (fullData.Status ==”
    • 那么我应该将 mData 更改为什么?以便我可以填充 FullData 以按照您的说明进行操作?
    • 保持 mData 不变。第三个参数是“行的完整数据源(不基于mData)”,所以它应该包含对象。我已经对其进行了编辑,以展示我认为它应该如何工作。
    猜你喜欢
    • 2013-09-14
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2011-01-20
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多