Я использую версию 1.4.1 из w2ui Grid. Я пытаюсь сделать inline edit во время загрузки данных с сервера с помощью urls property. неW2UI Сетка встроенного редактирования с источником данных
$(function() {
$('#grid').w2grid({
name: 'grid',
// begin block that causes grid to be uneditable
// url: {
// get : '<?php echo site_url('sections')?>/all',
// save : '<?php echo site_url('sections')?>/save'
// },
// end block that causes grid to be eneditable
show: {
toolbar: true,
footer: true,
toolbarSave: true,
toolbarEdit: true
},
columns: [
{
field: 'code',
caption: 'Code',
size: '120px',
sortable: true,
resizable: true,
editable: {
type: 'text'
}
}
],
// this records array can be removed once the urls are added back
records: [
{ recid: 1, code: '100' }
]
});
});
Если я раскомментировать «URL» блок, поле «код» на сетке больше не доступны для редактирования по двойному щелчку. Если я удалю его, это так. У кого-нибудь есть рабочий пример динамической загрузки данных с сервера, а также возможность встроенного редактирования?
ANSWER Как описано ниже, моя структура возврата была неправильной. Я использую CodeIgniter (CI) на заднем конце и мой метод управления выглядит следующим образом:
public function all() {
$data = $this->myModel->findAll();
$gridData = new W2GridData ($data);
echo $gridData->toJson(); //important to put "echo" here and not "return"
}
где метод FindAll() в моей модели класса:
function findAll() {
$query = $this->db->get (TABLE_NAME);
return $query->result();
}
и мой класс утилита для упаковки результат CI дБ теперь:
<?php
class W2GridData {
var $total = "-1";
var $records = "-1";
function __construct($items) {
$this->records = $items;
$this->total = count ($this->records);
}
function toJson() {
$strValue = json_encode ($this);
return str_replace ("\"id\":", "\"recid\":", $strValue); // this line was missing
}
}
Как вы можете видеть, я возвращался «идентификатор» прямо из БД, а не переводить его То'с w2ui предпочтительный «RECID», таким образом, сетка не рендеринга правильно.
спасибо Виталию, что это было. я обновлю вопрос выше с помощью решения – dev