从通过websocket发送到客户端的数据中重新加载jqgrid



我正在从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")正在为它做准备……仍然没有重新加载。

有什么建议吗?

如果您使用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");

相关内容

  • 没有找到相关文章

最新更新