使用$ .parseJson()datatables.js添加aocolumns

时间:2013-08-31 19:18:53

标签: javascript jquery json datatables

我需要从服务器aaDataaoColumns填充json表,但问题是我需要一个带按钮的列。

我有这段代码

$('#divGrid').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>');

var results = result.split('@_@');
$('#example').dataTable({
    "aaData": $.parseJSON(results[0]),

    ,
    "aoColumns": $.parseJSON(results[1])
});
}

我的结果是

results[0] = "[["
jpa ","
SI ","
","
","
","
PADILLA ",1],["
sid ","
SI ","
","
","
","
MIRAMONTES ",2]]"

results[1] = [{
    "sTitle": "UserName"
}, {
    "sTitle": "ID_CENTRO_TRABAJO"
}, {
    "sTitle": "rolName"
}, {
    "sTitle": "dominio"
}, {
    "sTitle": "recibeAlertas"
}, {
    "sTitle": "NOMBRE"
}, {
    "sTitle": "edit",
    "fnRender": 'function(obj){ return ' < input type = 'button'
    name = 'hola'
    value = 'Play' > < /input>';}'}]" 

但我的控制台很干净,不会抛出任何错误。出现该值但按钮不是。

3 个答案:

答案 0 :(得分:0)

您在返回和封装属性中使用相同的单引号,对属性使用双引号

return '<input  type="button" name="hola" value="Play">';

答案 1 :(得分:0)

我解决了类似的问题。也许这可以帮到你。

而不是尝试直接添加按钮,而是将某种占位符内容添加到您想要特殊内容的列中,然后在行回调事件期间修改结果:

$('#example').dataTable({
    "aaData": [["Test", "data", "<div class='play'>1</div>"], ["More", "data", "<div class='play'>2</div>"]],
    "aoColumns": [{"sTitle":"Col1"}, {"sTitle":"Col2"}, {"sTitle":"Buttons"}],
    "fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
        // retrieve the tr-element
        var element = $(nRow);
        // get id or something
        var id = element.find(".play").html();
        // insert what you want
        element.html("<button>Play: " + id + "</button>");
    }
});

答案 2 :(得分:0)

我是从服务器上创建的,在我的情况下,我使用的是PHP,我在填充数组结果查询时添加了两个“a”标记,这是我的服务器代码

                while ($stmt->fetch()) {                        
                    $resultado[$i] = array();
                    foreach($campos as $k => $v)
                        $resultado[$i][$k] = $v;
                    $resultado[$i]["editar"]   = '<a class="edit" href="">Editar</a>';
                    $resultado[$i]["eliminar"] = '<a class="delete" href="">Borrar</a>';
                    $i++;
                }

然后,我的json对象看起来像这样:

codigo: "1ES3" editar: "<a class="edit" href="">Editar</a>" eliminar: "<a class="delete" href="">Borrar</a>" hijo: null idioma: "ES"

现在我可以在dataTable中使用“a”标签。