ext和asp.net交互
来源:互联网 发布:uk国家域名缩写 编辑:程序博客网 时间:2024/05/16 00:28
今天在论坛中有人问ext和asp.net是如何进行交互的,对于一个刚入门的新手来说,这个问题可能会使其比较迷惑,下面我写一个非常简单的例子来说明一下ext如何与asp.net来进行数据交互
Default.htm:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" >
- <head>
- <title>Untitled Page</title>
- <link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css" />
- <script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
- <script type="text/javascript" src="ext/ext-all.js"></script>
- </head>
- <body>
- <div id="listContainer"></div>
- <script type="text/javascript">
- var store = new Ext.data.JsonStore({
- url: 'DefaultHandler.ashx?method=getlist',
- root: 'items',
- remoteSort: true,
- fields: [
- 'TestName',
- 'TestValue'
- ],
- listeners:{
- load: function(store, records, options){
- grid.render();
- },
- loadexception: function(proxy, options, response){
- Ext.Msg.alert('Load data error!', response.responseText);
- }
- }
- });
- Ext.onReady(function(){
- Ext.QuickTips.init();
- store.load();
- });
- var listContainer=Ext.get("listContainer");
- var grid = new Ext.grid.GridPanel({
- el: 'listContainer',
- width:listContainer.getComputedWidth(),
- autoHeight: true,
- store: store,
- disableSelection: false,
- loadMask: true,
- deferRowRender: false,
- sm: new Ext.grid.RowSelectionModel({singleSelect:true}),
- columns:[
- {
- header: 'name',
- dataIndex: 'TestName',
- sortable: true
- },{
- header: 'value',
- dataIndex: 'TestValue',
- sortable: true
- }]
- });
- window.onresize=function(){
- grid.setWidth(listContainer.getComputedWidth());
- };
- function Button1_onclick() {
- //这里简单的来访问一下store中的数据
- alert(store.data.items[0].data.TestName);
- alert(store.data.items[0].data.TestValue);
- }
- </script>
- <input id="Button1" type="button" value="display" onclick="return Button1_onclick()" />
- </body>
- </html>
DefaultHandler.ashx:
- <%@ WebHandler Language="C#" Class="DefaultHandler" %>
- using System;
- using System.Web;
- using System.Data;
- public class DefaultHandler : IHttpHandler {
- public void ProcessRequest (HttpContext context) {
- string str = context.Request.QueryString["method"];
- if (string.IsNullOrEmpty(str))
- {
- context.Response.Write("error!");
- return;
- }
- switch (str)
- {
- case "getlist":
- GetList(context);
- break;
- //下边还有可以接着写.
- }
- context.Response.End();
- }
- public bool IsReusable {
- get {
- return false;
- }
- }
- public void GetList(HttpContext context)
- {
- //这里模拟一个DataTable,实际应用中可能是去数据库里查询数据
- DataTable dt = new DataTable();
- dt.Columns.Add("TestName", typeof(string));
- dt.Columns.Add("TestValue", typeof(string));
- for (int i = 0; i < 6; i++)
- {
- DataRow dr = dt.NewRow();
- dr["TestName"] = "TestName" + i.ToString();
- dr["TestValue"] = "TestValue" + i.ToString();
- dt.Rows.Add(dr);
- }
- //将一个DataTable中的数据转成json,实际开发中可以用Newtonsoft.Json等组件
- //将集合类等,方便的转成json对象
- System.Text.StringBuilder sb = new System.Text.StringBuilder();
- sb.Append("{items: [");
- foreach (DataRow dr in dt.Rows)
- {
- sb.Append("{");
- sb.AppendFormat("TestName:'{0}',TestValue:'{1}'", dr[0], dr[1]);
- sb.Append("},");
- }
- //输出拼成的json
- context.Response.Write(sb.ToString().Trim(',') + "]}");
- }
- }
例子完了.很容易吧.在实际的开发中往往会把页面中的javascript脚本单独写到一个js文件中.这样会有很多的好处.
本示例中我用ashx(HttpHandler)文件来处理客户端请求,你也可以用aspx,web services等等.
- ext和asp.net交互
- Extjs和Asp.NET后台的数据交互(二) => Ext.data.Connection
- Flash AS3和ASP.NET的交互
- asp.net 图片和数据库的交互
- 【ASP.net】浏览器和服务器的交互
- asp.net前后台方法和变量交互
- ASP.NET和Javascript的Json数据交互
- EXT.NET应用例子,上传和下载图片及与数据库的交互
- Asp.Net MVC4配置Ext.Net
- ajax asp.net 交互 rendercontrol
- asp.net 两个listbox交互
- ASP.NET与JavaScript交互
- asp.net 前后台交互
- ASP.NET与JS交互
- ASP.NET与JS交互
- Javascript与ASP.NET交互
- ASP.NET与JS交互
- ASP.NET与JS交互
- 函数说明(MultiByteToWideChar 、WideCharToMultiByte) 08.11.3
- SAP Java Connector - Excample 1: Simple RFC call
- 【转帖】深入浅出Dll(介绍函数导出、类导出、钓子dll、不同语言混合编程方法、插件等的实现方法)
- C#常用日期格式处理转换[C#日期格式转换大全]
- Numenta可能会推动web3.0
- ext和asp.net交互
- 老板爱炒的15种员工
- 全局变量的引用
- 中关村没有规则
- “我们弄清了大脑的大部分活动”Numenta公司公开研究成果
- 使用webservice解决多系统登陆问题
- 惊天大秘诀之一,supermap object 对象使用方法,soRecordset
- C#教学第9讲事件1(学习笔记)
- 用源码在ubuntu 8.04.1上安装 compiz-fusion 0.7.8