我需要从服务器aaData
和aoColumns
填充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>';}'}]"
但我的控制台很干净,不会抛出任何错误。出现该值但按钮不是。
答案 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”标签。