1

我有一个填充有aaData. 最后一列action再次填充了一个数组。

我需要做的是,通过单击操作链接,我应该为单击操作的特定行选取列数组值。

操作列使用以下 json 格式填充

[
            {   
                "displayValue":"Browse",
                "link":"svnpath/BacklogApp",
                "displayIcon" : "browselogo"
            },
            {   
                "displayValue":"Source Code",
                "link":"svnpath/BackLog/trunk/webapp-project/",
                "displayIcon" : "svnlogo"
            },
            {   
                "displayValue":"Contributors: Vaibhav",
                "link":"#contributors",
                "displayIcon" : "people"
            }
        ]

这是我的行动专栏,包含三个链接 -浏览、源代码和贡献者。当我单击贡献者图标时,我应该能够获取"Contributors: Vaibhav"此字符串。

下面是JS代码

$(document).on('click', '.contributor', function(e)

    var aPos = tableAADataForContributors.fnGetPosition(this);
    alert(aPos);

    //if aPos returns an array in console, use first val at pos zero to get row data
    var aData = tableAADataForContributors.fnGetData(aPos[0]);
    alert(aData);

但是提醒一下,我的aPos即将为空,而tableAADataForContributors不为空。

另外,这就是我填充数据表的方式

$.ajax({
   type: "GET",
   url: url,
   dataType: "json",
   cache: false,
   contentType: "application/json",
   success: function(tablePropJSONData) {
     var oTable = $('#genericTable').dataTable( {
        "bProcessing": true,
        "aaData": tableObj,
        "sPaginationType"   : "full_numbers",
        "bJQueryUI"         : true,
        "bRetrieve"         : true,
        "bPaginate"         : true,
        "bSort"             : true,
        "aaSorting"         : [[ 2, "desc" ]],
        "iDisplayLength"    : 50,
        "bAutoWidth"        : false,
        "bStateSave"        : false,
        "aoColumns" : tablePropJSONData.aoColumns,
        "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
            var lastColumnIndex = aData.length-1;
            var actionColumnContent = renderActionColumn(aData[lastColumnIndex]);
            $('td:eq('+lastColumnIndex+')', nRow).html(actionColumnContent);
        }
    }); 
    tableAADataForContributors = oTable; // initializing for picking up contributors from datatable.

    searchDataTable(oTable, searchTerm);
   },

同样初始化一个全局变量tableAADataForContributors以便稍后在 onclick 事件中使用它。

我不能这样做。请有人建议一个javascript代码。

4

1 回答 1

1

值得庆幸的是,我能够自己解决它。只是一点点在这里和那里是需要的。下面的代码满足要求

$(document).on('click', '.contributor', function(e){
    var aPos = tableAADataForContributors.fnGetPosition( $(this).closest('tr')[0]);

    //if aPos returns an array in console, use first val at pos zero to get row data
    var aData = tableAADataForContributors.fnGetData(aPos);

    var actionColumnData = aData[aData.length-1];

    $.each(actionColumnData, function(i, value){
        alert(value.displayValue)
    });
于 2013-07-08T09:36:19.023 回答