перезагрузить jqgrid из данных, отправленных клиенту через веб-сокеты - PullRequest
0 голосов
/ 07 февраля 2012

Я отправляю строку с сервера websockets моему клиенту, на котором есть jqgrid.

строка - это объект JSON, который я конвертирую с помощью eval () (я знаю, что это не лучшая практика, но на данный момент это просто для подтверждения концепции).

Я просто пытаюсь перезагрузить jqgrid с помощью:

var obj = eval("(" + msg.data + ")");
$("#list").setGridParam({ "postData" : obj }).trigger("reloadGrid");

где msg - это параметр в моем обратном вызове socket.onmessage, если я предупреждаю (msg.data), я вижу правильно сформированную строку JSON, но моя сетка не перезагружается.

если я предупреждаю obj, я вижу, что он правильно конвертируется в объект.

Я также попытался разбить триггер ("reloadGrid") на отдельную строку с моим $ ("# list), предваряющим его ... все еще не перезагружающимся.

есть предложения?

1 Ответ

0 голосов
/ 08 февраля 2012

Если вы используете datatype: 'jsonstring' и datastr: msg.data и хотите перезагрузить сетку с другими данными, вы должны понимать, что datatype: 'jsonstring' изменится на datatype: 'jsonstring' после первой загрузки.Параметр postData будет использоваться только в том случае, если вы общаетесь с сервером.В случае datatype должно быть либо 'json', либо 'xml'.Параметр url также должен быть установлен в этом случае.

Поэтому я могу попробовать сделать следующее:

$("#list").setGridParam({
    datatype: 'jsonstring', // reset the `datatype`
    datastr: msg.data       // set new value of the input data
}).trigger("reloadGrid");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...