Вот как я реализую flexigrid
$('.mytable').flexigrid({
url: '<c:url value="/callController"/>',
dataType: 'json',
colModel : [
{display: 'ID', name : 'id', width : 40, sortable : true, align: 'right'},
{display: 'Name', name : 'name', width : 150, sortable : true, align: 'left'},
{display: 'Checkbox checked', name : 'checked', width : 150, sortable : false, align: 'left' }
],
sortname: "id",
sortorder: "asc",
usepager: true,
title: false,
useRp: false,
rp: 15,
showTableToggleBtn: false,
showToggleBtn: false,
singleSelect: true,
striped: true,
height: 200,
width: 'auto'
});
Если вы видите третий столбец, значение для 'checked' возвращается как true/false (Boolean), но я хочу отобразить его как Yes/No в таблице.
Есть ли способ преобразовать это значение true/false в Yes/No при рендеринге таблицы?
Платформа: Java, SpringMVC, JQuery
Вы можете предоставить функцию обратного вызова "preProcess" для изменения/форматирования данных, возвращаемых вызовом ajax, прежде чем он будет отображаться:
preProcess: function(data) {
$.each(data.rows, function(i, row) {
row.checked = row.checked ? 'Yes' : 'No';
});
return data;
},
Примечание. Я действительно не вижу, где обратный вызов "preProcess" документирован, кроме следующего примечания на странице проекта Flexigrid:
Новый API PreProcess позволяет вам изменять или обрабатывать данные, отправленные сервером, прежде чем передавать его на Flexigrid, что позволяет использовать, например, собственный формат JSON.
Тем не менее, похоже, он работает почти так же, как обратный вызов " .ajax
функции jQuery .ajax
.
Yes/No
по-прежнему булево, и помните: вы можете делать с булевыми значениями все, что хотите, с помощью условных выражений. Вот для чего они.if (boolean-is-true) { // do something } else { //do something else }