Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 从通过WebSocket发送到客户端的数据重新加载jqgrid_Jquery_Jqgrid_Websocket - Fatal编程技术网

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

Jquery 从通过WebSocket发送到客户端的数据重新加载jqgrid,jquery,jqgrid,websocket,Jquery,Jqgrid,Websocket,我正在将一个字符串从websockets服务器发送到带有jqgrid的客户端 字符串是一个JSON对象,我正在使用eval()转换它(我知道这不是最佳实践,但这只是为了证明这一点) 我只是想用以下内容重新加载jqgrid: var obj = eval("(" + msg.data + ")"); $("#list").setGridParam({ "postData" : obj }).trigger("reloadGrid"); 其中msg是socket.onmessage回调中的参数,如

我正在将一个字符串从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”),但仍然没有重新加载


有什么建议吗?

如果您使用
数据类型:“jsonstring”
datastr:msg.data
并且希望用另一个数据重新加载网格,您应该了解
数据类型:“jsonstring”
在第一次加载后将更改为
数据类型:“jsonstring”
。只有在与服务器通信时才会使用
postData
参数。在这种情况下,
数据类型必须是
'json'
'xml'
。在这种情况下也应设置
url
参数

因此,我认为您可以尝试执行以下操作:

$("#list").setGridParam({
    datatype: 'jsonstring', // reset the `datatype`
    datastr: msg.data       // set new value of the input data
}).trigger("reloadGrid");

看来我不太明白你在做什么。首先,您可以使用
eval
,而不是
eval
,但我不明白为什么您需要将JSON字符串
msg.data
转换为对象,然后将其用作
postData:obj
而不仅仅是使用
postData:{myMsg:msg.data}
?您可以使用哪种格式将数据发送到服务器?此外,如果没有
msg.data
的示例,很难给您提供建议。此外,我还不清楚如何将WebSocket与jqGrid.Oleg一起使用。谢谢你的回复。最后,我只使用datatype:jsonstring和datastr:msg.data使其工作。正如我在OP中所说,这只是为了概念验证,所以我只是试图让网格从websocket服务器推送的数据中重新加载数据,并且我能够使用我在这篇评论中提到的两个更改来实现这一点。我想我现在明白了问题出在哪里了。我在我的答案中写下了细节。有点可笑,你发布的答案与我在评论中所说的一模一样。但我非常感谢您的努力,因此我将为您核对:P@ChristopherJohnson当前位置可能我没有正确地理解你。如果你在发布问题时没有更多完整的代码来解释你目前所做的事情,这是非常困难的。我理解您对datatype:jsonstring和datastr:msg.data的评论,因此您使用该方法作为当前方法,以解决问题中描述的问题。您不会详细描述如何根据JSON将通信与websocket集成在一起。如果您不能使用
jQuery.ajax
进行通信,那么使用
datetype:'jsonstring'
可能会有所帮助,但无论如何,我需要更多的细节来帮助您