DataTables和Hyperlink组按钮

时间:2014-12-15 10:24:56

标签: jquery jquery-datatables datatables-1.10

我在我的DataTable的actios列中放置了bootstrpa按钮组。该按钮由三个选项组成,每个选项调用一个单独的函数,传入Id的值。

这一切都在数据表的ColumnDefs部分设置,如下所示:

   "columnDefs": [
             { "visible": false, "targets": 7 },
             { "visible": true, "targets": 8 },
              {
                  "targets": 8,
                  "visible": true,
                  "searchable": false,
                  "sortable": false,
                  "data": "download_link",
                  "render": function (data, type, full, meta) {

                      return '<div class="btn-group" role="group">' +
                          '<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Action<span class="caret"></span>' +
                          '</button>' +
                          '<ul class="dropdown-menu" role="menu">' +
                         '<li><a href="javascript:viewMessage(' + data + ');">View</a></li>' +
                         '<li><a href="javascript:completeMessage(' + data + ');">Complete</a></li>' +
                          '<li><a href="javascript:approveMessage(' + data + ');">Approve</a></li>' +
                          '</div>';
                  }
              }
            ]

我的viewMessage函数甚至没有被调用,因为我得到了一个未被捕获的ReferenceError&#39;值&#39;没有定义。

如果我省略了数据&#39;价值,我的方法被解雇了。

1 个答案:

答案 0 :(得分:1)

如果没有看到目标函数的代码很难完全确定,例如viewMessage,但我认为问题在于您没有引用data。这样做:

'<li><a href="javascript:viewMessage(&quot;' + data + '&quot;);">View</a></li>' +
'<li><a href="javascript:completeMessage(&quot;' + data + '&quot;);">Complete</a></li>' +
'<li><a href="javascript:approveMessage(&quot;' + data + '&quot;);">Approve</a></li>' +

没有引号,因为它是对变量的引用而插入data。如果data为“test”,则结果为

<a href="javascript:viewMessage(test);">View</a>             

test作为变量在作用域中不存在,因此未捕获的ReferenceError'值'未定义(我猜您将传递的参数称为value in这三个功能。