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>
  • 加载页面后,显示由EXT.NET实现的空白网格面板
  • 按一个名为“更新”的按钮,然后连接到WebSocket服务器
  • 从WebSocket服务器接收消息后,检索列表类型数据并将其显示在gridPanel上
  • websocket客户端功能和gridPanel上的显示数据应由C实现#
  • 我所取得的成就:

    <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服务器发送消息,也可以从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>