2013-08-31 2 views
1

Мне нужно заполнить таблицу json с сервера aaData и aoColumns, но дело в том, что мне нужен столбец с кнопкой.

У меня есть этот код

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

var results = result.split('@[email protected]'); 
$('#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

Вы используете один и тот же одинарную кавычку в ответ и герметизирующего атрибуты, используйте двойные кавычки для атрибутов

return '<input type="button" name="hola" value="Play">'; 
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>"); 
    } 
}); 
0

Я сделал это из сервер, в моем случае я использую PHP, и я добавил два «а» метки при заполнении массива моего результата запроса, это мой код сервера

   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" 

И теперь я могу использовать теги «a» в моей таблице данных.

Смежные вопросы