Javascript 在C语言中,webSocket接收到消息后如何检索数据#
我现在面临一个问题,以下是我想要的:Javascript 在C语言中,webSocket接收到消息后如何检索数据#,javascript,c#,asp.net,Javascript,C#,Asp.net,我现在面临一个问题,以下是我想要的: <script type="text/javascript"> var submitValue = function (grid, hiddenFormat, format) { hiddenFormat.setValue(format); console.log("format=" + format); grid.submitData(false); }; var tem
<script type="text/javascript">
var submitValue = function (grid, hiddenFormat, format) {
hiddenFormat.setValue(format);
console.log("format=" + format);
grid.submitData(false);
};
var template = '<span style="color:{0};">{1}</span>';
var change = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value);
};
var pctChange = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value + "%");
};
</script>
</head>
<body>
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<form id="Form1" runat="server">
<ext:Hidden ID="FormatType" runat="server" />
<ext:GridPanel
ID="GridPanel1"
runat="server"
StripeRows="true"
Title="Fault log"
TrackMouseOver="true"
Width="800"
Height="800"
AutoWidth="True" ForceLayout="True" ForceValidation="True">
<Store>
<ext:Store
ID="Store1"
runat="server"
>
<DirectEventConfig IsUpload="true" />
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="TestCode" Type="String"/>
<ext:RecordField Name="TestTime" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server">
<Items>
<ext:ToolbarFill ID="ToolbarFill1" runat="server" />
<ext:Button ID="btn_Update_ext" runat="server" Text="Update" Icon="Reload">
<DirectEvents>
<Click OnEvent="Store1_RefreshData"></Click>
</DirectEvents>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ColumnID="TestCode" Header="TestCode" DataIndex="TestCode" />
<ext:Column ColumnID="TestTime" Header="TestTime" DataIndex="TestTime" Width="200px" />
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
</SelectionModel>
</ext:GridPanel>
</form>
</body>
</html>
<script type="text/javascript">
var submitValue = function (grid, hiddenFormat, format) {
hiddenFormat.setValue(format);
console.log("format=" + format);
grid.submitData(false);
};
var template = '<span style="color:{0};">{1}</span>';
var change = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value);
};
var pctChange = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value + "%");
};
</script>
</head>
<body>
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<form id="Form1" runat="server">
<ext:Hidden ID="FormatType" runat="server" />
<ext:GridPanel
ID="GridPanel1"
runat="server"
StripeRows="true"
Title="Fault log"
TrackMouseOver="true"
Width="800"
Height="800"
AutoWidth="True" ForceLayout="True" ForceValidation="True">
<Store>
<ext:Store
ID="Store1"
runat="server"
>
<DirectEventConfig IsUpload="true" />
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="TestCode" Type="String"/>
<ext:RecordField Name="TestTime" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server">
<Items>
<ext:ToolbarFill ID="ToolbarFill1" runat="server" />
<ext:Button ID="btn_Update_ext" runat="server" Text="Update" Icon="Reload">
<DirectEvents>
<Click OnEvent="Store1_RefreshData"></Click>
</DirectEvents>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ColumnID="TestCode" Header="TestCode" DataIndex="TestCode" />
<ext:Column ColumnID="TestTime" Header="TestTime" DataIndex="TestTime" Width="200px" />
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
</SelectionModel>
</ext:GridPanel>
</form>
</body>
</html>
我可以连接并向websocket服务器发送消息,也可以从websocket服务器接收消息。此外,我可以在“ws.OnMessage{}”函数中接收数据后检索数据。但是,接收到的数据无法显示在EXT.NET gridPanel上。这个问题有什么解决办法吗
<script type="text/javascript">
var submitValue = function (grid, hiddenFormat, format) {
hiddenFormat.setValue(format);
console.log("format=" + format);
grid.submitData(false);
};
var template = '<span style="color:{0};">{1}</span>';
var change = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value);
};
var pctChange = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value + "%");
};
</script>
</head>
<body>
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<form id="Form1" runat="server">
<ext:Hidden ID="FormatType" runat="server" />
<ext:GridPanel
ID="GridPanel1"
runat="server"
StripeRows="true"
Title="Fault log"
TrackMouseOver="true"
Width="800"
Height="800"
AutoWidth="True" ForceLayout="True" ForceValidation="True">
<Store>
<ext:Store
ID="Store1"
runat="server"
>
<DirectEventConfig IsUpload="true" />
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="TestCode" Type="String"/>
<ext:RecordField Name="TestTime" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server">
<Items>
<ext:ToolbarFill ID="ToolbarFill1" runat="server" />
<ext:Button ID="btn_Update_ext" runat="server" Text="Update" Icon="Reload">
<DirectEvents>
<Click OnEvent="Store1_RefreshData"></Click>
</DirectEvents>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ColumnID="TestCode" Header="TestCode" DataIndex="TestCode" />
<ext:Column ColumnID="TestTime" Header="TestTime" DataIndex="TestTime" Width="200px" />
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
</SelectionModel>
</ext:GridPanel>
</form>
</body>
</html>
我用于websocket客户端的包是“websocket sharp/”,并使用“Fleck”作为websocket服务器。(我只是实现了客户端。)下面是我的代码:
<script type="text/javascript">
var submitValue = function (grid, hiddenFormat, format) {
hiddenFormat.setValue(format);
console.log("format=" + format);
grid.submitData(false);
};
var template = '<span style="color:{0};">{1}</span>';
var change = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value);
};
var pctChange = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value + "%");
};
</script>
</head>
<body>
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<form id="Form1" runat="server">
<ext:Hidden ID="FormatType" runat="server" />
<ext:GridPanel
ID="GridPanel1"
runat="server"
StripeRows="true"
Title="Fault log"
TrackMouseOver="true"
Width="800"
Height="800"
AutoWidth="True" ForceLayout="True" ForceValidation="True">
<Store>
<ext:Store
ID="Store1"
runat="server"
>
<DirectEventConfig IsUpload="true" />
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="TestCode" Type="String"/>
<ext:RecordField Name="TestTime" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server">
<Items>
<ext:ToolbarFill ID="ToolbarFill1" runat="server" />
<ext:Button ID="btn_Update_ext" runat="server" Text="Update" Icon="Reload">
<DirectEvents>
<Click OnEvent="Store1_RefreshData"></Click>
</DirectEvents>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ColumnID="TestCode" Header="TestCode" DataIndex="TestCode" />
<ext:Column ColumnID="TestTime" Header="TestTime" DataIndex="TestTime" Width="200px" />
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
</SelectionModel>
</ext:GridPanel>
</form>
</body>
</html>
--------------.cs文件--------------
<script type="text/javascript">
var submitValue = function (grid, hiddenFormat, format) {
hiddenFormat.setValue(format);
console.log("format=" + format);
grid.submitData(false);
};
var template = '<span style="color:{0};">{1}</span>';
var change = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value);
};
var pctChange = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value + "%");
};
</script>
</head>
<body>
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<form id="Form1" runat="server">
<ext:Hidden ID="FormatType" runat="server" />
<ext:GridPanel
ID="GridPanel1"
runat="server"
StripeRows="true"
Title="Fault log"
TrackMouseOver="true"
Width="800"
Height="800"
AutoWidth="True" ForceLayout="True" ForceValidation="True">
<Store>
<ext:Store
ID="Store1"
runat="server"
>
<DirectEventConfig IsUpload="true" />
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="TestCode" Type="String"/>
<ext:RecordField Name="TestTime" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server">
<Items>
<ext:ToolbarFill ID="ToolbarFill1" runat="server" />
<ext:Button ID="btn_Update_ext" runat="server" Text="Update" Icon="Reload">
<DirectEvents>
<Click OnEvent="Store1_RefreshData"></Click>
</DirectEvents>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ColumnID="TestCode" Header="TestCode" DataIndex="TestCode" />
<ext:Column ColumnID="TestTime" Header="TestTime" DataIndex="TestTime" Width="200px" />
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
</SelectionModel>
</ext:GridPanel>
</form>
</body>
</html>
使用系统;
使用System.Collections.Generic;
使用系统数据;
使用System.Xml;
使用System.Xml.Xsl;
使用WebSocketSharp;
使用Ext.Net;
命名空间WebApplication1
{
公共部分类问题示例:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
}
WebSocket ws;
静态数据表ConvertToDatatable(列表)
{
DataTable dt=新的DataTable();
添加(“测试代码”);
dt.Columns.Add(“测试时间”);
foreach(列表中的变量项)
{
var row=dt.NewRow();
行[“TestCode”]=item.TestCode;
行[“TestTime”]=item.TestTime;
dt.行。添加(行);
}
返回dt;
}
//----------------------------------------------------------------------------
//----按下“更新”按钮后,调用Store1\u RefreshData功能---
//----------------------------------------------------------------------------
受保护的无效存储1\u刷新数据(对象发送方,DirectEventArgs e)
{
//检索数据();
ws=newwebsocket(“ws://localhost:8181/”;
ws.Connect();
ws.OnOpen+=(senderWS,eWS)=>{};
ws.OnMessage+=(发件人、eWS)=>
{
if(eWS.Type==Opcode.Text)
{
检索数据();
}
};
}
公共无效检索数据()
{
列表=新列表();
添加(新的PcsInfo{TestCode=“123”,TestTime=“456”});
this.Store1.DataSource=converttodata(列表);
this.Store1.DataBind();
}
公共类PcsInfo
{
公共字符串测试代码;
公共字符串测试时间;
}
}
}
--------------.aspx文件--------------
<script type="text/javascript">
var submitValue = function (grid, hiddenFormat, format) {
hiddenFormat.setValue(format);
console.log("format=" + format);
grid.submitData(false);
};
var template = '<span style="color:{0};">{1}</span>';
var change = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value);
};
var pctChange = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value + "%");
};
</script>
</head>
<body>
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<form id="Form1" runat="server">
<ext:Hidden ID="FormatType" runat="server" />
<ext:GridPanel
ID="GridPanel1"
runat="server"
StripeRows="true"
Title="Fault log"
TrackMouseOver="true"
Width="800"
Height="800"
AutoWidth="True" ForceLayout="True" ForceValidation="True">
<Store>
<ext:Store
ID="Store1"
runat="server"
>
<DirectEventConfig IsUpload="true" />
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="TestCode" Type="String"/>
<ext:RecordField Name="TestTime" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server">
<Items>
<ext:ToolbarFill ID="ToolbarFill1" runat="server" />
<ext:Button ID="btn_Update_ext" runat="server" Text="Update" Icon="Reload">
<DirectEvents>
<Click OnEvent="Store1_RefreshData"></Click>
</DirectEvents>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ColumnID="TestCode" Header="TestCode" DataIndex="TestCode" />
<ext:Column ColumnID="TestTime" Header="TestTime" DataIndex="TestTime" Width="200px" />
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
</SelectionModel>
</ext:GridPanel>
</form>
</body>
</html>
<script type="text/javascript">
var submitValue = function (grid, hiddenFormat, format) {
hiddenFormat.setValue(format);
console.log("format=" + format);
grid.submitData(false);
};
var template = '<span style="color:{0};">{1}</span>';
var change = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value);
};
var pctChange = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value + "%");
};
</script>
</head>
<body>
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<form id="Form1" runat="server">
<ext:Hidden ID="FormatType" runat="server" />
<ext:GridPanel
ID="GridPanel1"
runat="server"
StripeRows="true"
Title="Fault log"
TrackMouseOver="true"
Width="800"
Height="800"
AutoWidth="True" ForceLayout="True" ForceValidation="True">
<Store>
<ext:Store
ID="Store1"
runat="server"
>
<DirectEventConfig IsUpload="true" />
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="TestCode" Type="String"/>
<ext:RecordField Name="TestTime" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server">
<Items>
<ext:ToolbarFill ID="ToolbarFill1" runat="server" />
<ext:Button ID="btn_Update_ext" runat="server" Text="Update" Icon="Reload">
<DirectEvents>
<Click OnEvent="Store1_RefreshData"></Click>
</DirectEvents>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ColumnID="TestCode" Header="TestCode" DataIndex="TestCode" />
<ext:Column ColumnID="TestTime" Header="TestTime" DataIndex="TestTime" Width="200px" />
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
</SelectionModel>
</ext:GridPanel>
</form>
</body>
</html>
var submitValue=函数(网格、隐藏格式、格式){
设置值(格式);
console.log(“format=“+format”);
grid.submitData(假);
};
变量模板='{1}';
变量变化=函数(值){
返回字符串格式(模板,(值>0)?“绿色”:“红色”,值);
};
var pctChange=函数(值){
返回字符串.格式(模板,(值>0)?“绿色”:“红色”,值+“%”;
};
最后,我的问题出现在“Store1_RefreshData()”方法上。使用websocket执行时,retrieveData()方法无法将数据绑定到Store1。但是,如果我在“Store1_RefreshData()”方法中标记除“retrieveData()”之外的所有其他代码,它就可以正常工作
<script type="text/javascript">
var submitValue = function (grid, hiddenFormat, format) {
hiddenFormat.setValue(format);
console.log("format=" + format);
grid.submitData(false);
};
var template = '<span style="color:{0};">{1}</span>';
var change = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value);
};
var pctChange = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value + "%");
};
</script>
</head>
<body>
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<form id="Form1" runat="server">
<ext:Hidden ID="FormatType" runat="server" />
<ext:GridPanel
ID="GridPanel1"
runat="server"
StripeRows="true"
Title="Fault log"
TrackMouseOver="true"
Width="800"
Height="800"
AutoWidth="True" ForceLayout="True" ForceValidation="True">
<Store>
<ext:Store
ID="Store1"
runat="server"
>
<DirectEventConfig IsUpload="true" />
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="TestCode" Type="String"/>
<ext:RecordField Name="TestTime" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server">
<Items>
<ext:ToolbarFill ID="ToolbarFill1" runat="server" />
<ext:Button ID="btn_Update_ext" runat="server" Text="Update" Icon="Reload">
<DirectEvents>
<Click OnEvent="Store1_RefreshData"></Click>
</DirectEvents>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ColumnID="TestCode" Header="TestCode" DataIndex="TestCode" />
<ext:Column ColumnID="TestTime" Header="TestTime" DataIndex="TestTime" Width="200px" />
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
</SelectionModel>
</ext:GridPanel>
</form>
</body>
</html>
谁能帮我解决这个问题?谢谢
<script type="text/javascript">
var submitValue = function (grid, hiddenFormat, format) {
hiddenFormat.setValue(format);
console.log("format=" + format);
grid.submitData(false);
};
var template = '<span style="color:{0};">{1}</span>';
var change = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value);
};
var pctChange = function (value) {
return String.format(template, (value > 0) ? "green" : "red", value + "%");
};
</script>
</head>
<body>
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<form id="Form1" runat="server">
<ext:Hidden ID="FormatType" runat="server" />
<ext:GridPanel
ID="GridPanel1"
runat="server"
StripeRows="true"
Title="Fault log"
TrackMouseOver="true"
Width="800"
Height="800"
AutoWidth="True" ForceLayout="True" ForceValidation="True">
<Store>
<ext:Store
ID="Store1"
runat="server"
>
<DirectEventConfig IsUpload="true" />
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="TestCode" Type="String"/>
<ext:RecordField Name="TestTime" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server">
<Items>
<ext:ToolbarFill ID="ToolbarFill1" runat="server" />
<ext:Button ID="btn_Update_ext" runat="server" Text="Update" Icon="Reload">
<DirectEvents>
<Click OnEvent="Store1_RefreshData"></Click>
</DirectEvents>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ColumnID="TestCode" Header="TestCode" DataIndex="TestCode" />
<ext:Column ColumnID="TestTime" Header="TestTime" DataIndex="TestTime" Width="200px" />
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
</SelectionModel>
</ext:GridPanel>
</form>
</body>
</html>