`
javatoyou
  • 浏览: 1069095 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

ext异步请求一个aspx/ashx/web service取得数据,服务端返回一个json.然后客户端接收并显示.

 
阅读更多

今天在论坛中有人问ext和asp.net是如何进行交互的,对于一个刚入门的新手来说,这个问题可能会使其比较迷惑,下面我写一个非常简单的例子来说明一下ext如何与asp.net来进行数据交互

Default.htm:

  1. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <htmlxmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>UntitledPage</title>
  5. <linkrel="stylesheet"type="text/css"href="ext/resources/css/ext-all.css"/>
  6. <scripttype="text/javascript"src="ext/adapter/ext/ext-base.js"></script>
  7. <scripttype="text/javascript"src="ext/ext-all.js"></script>
  8. </head>
  9. <body>
  10. <divid="listContainer"></div>
  11. <scripttype="text/javascript">
  12. varstore=newExt.data.JsonStore({
  13. url:'DefaultHandler.ashx?method=getlist',
  14. root:'items',
  15. remoteSort:true,
  16. fields:[
  17. 'TestName',
  18. 'TestValue'
  19. ],
  20. listeners:{
  21. load:function(store,records,options){
  22. grid.render();
  23. },
  24. loadexception:function(proxy,options,response){
  25. Ext.Msg.alert('Loaddataerror!',response.responseText);
  26. }
  27. }
  28. });

  29. Ext.onReady(function(){
  30. Ext.QuickTips.init();
  31. store.load();
  32. });

  33. varlistContainer=Ext.get("listContainer");
  34. vargrid=newExt.grid.GridPanel({
  35. el:'listContainer',
  36. width:listContainer.getComputedWidth(),
  37. autoHeight:true,
  38. store:store,
  39. disableSelection:false,
  40. loadMask:true,
  41. deferRowRender:false,
  42. sm:newExt.grid.RowSelectionModel({singleSelect:true}),
  43. columns:[
  44. {
  45. header:'name',
  46. dataIndex:'TestName',
  47. sortable:true
  48. },{
  49. header:'value',
  50. dataIndex:'TestValue',
  51. sortable:true
  52. }]
  53. });

  54. window.onresize=function(){
  55. grid.setWidth(listContainer.getComputedWidth());
  56. };
  57. functionButton1_onclick(){
  58. //这里简单的来访问一下store中的数据
  59. alert(store.data.items[0].data.TestName);
  60. alert(store.data.items[0].data.TestValue);
  61. }

  62. </script>
  63. <inputid="Button1"type="button"value="display"onclick="returnButton1_onclick()"/>
  64. </body>
  65. </html>

DefaultHandler.ashx:

  1. <%@WebHandlerLanguage="C#"Class="DefaultHandler"%>

  2. usingSystem;
  3. usingSystem.Web;
  4. usingSystem.Data;

  5. publicclassDefaultHandler:IHttpHandler{
  6. publicvoidProcessRequest(HttpContextcontext){
  7. stringstr=context.Request.QueryString["method"];
  8. if(string.IsNullOrEmpty(str))
  9. {
  10. context.Response.Write("error!");
  11. return;
  12. }

  13. switch(str)
  14. {
  15. case"getlist":
  16. GetList(context);
  17. break;
  18. //下边还有可以接着写.
  19. }
  20. context.Response.End();
  21. }

  22. publicboolIsReusable{
  23. get{
  24. returnfalse;
  25. }
  26. }

  27. publicvoidGetList(HttpContextcontext)
  28. {
  29. //这里模拟一个DataTable,实际应用中可能是去数据库里查询数据
  30. DataTabledt=newDataTable();
  31. dt.Columns.Add("TestName",typeof(string));
  32. dt.Columns.Add("TestValue",typeof(string));
  33. for(inti=0;i<6;i++)
  34. {
  35. DataRowdr=dt.NewRow();
  36. dr["TestName"]="TestName"+i.ToString();
  37. dr["TestValue"]="TestValue"+i.ToString();
  38. dt.Rows.Add(dr);
  39. }
  40. //将一个DataTable中的数据转成json,实际开发中可以用Newtonsoft.Json等
  41. //组件将集合类等,方便的转成json对象
  42. System.Text.StringBuildersb=newSystem.Text.StringBuilder();
  43. sb.Append("{items:[");
  44. foreach(DataRowdrindt.Rows)
  45. {
  46. sb.Append("{");
  47. sb.AppendFormat("TestName:'{0}',TestValue:'{1}'",dr[0],dr[1]);
  48. sb.Append("},");
  49. }
  50. //输出拼成的json
  51. context.Response.Write(sb.ToString().Trim(',')+"]}");
  52. }
  53. }

例子完了.很容易吧.在实际的开发中往往会把页面中的javascript脚本单独写到一个js文件中.这样会有很多的好处.

本示例中我用ashx(HttpHandler)文件来处理客户端请求,你也可以用aspx,web services等等.

分享到:
评论

相关推荐

    异步请求分页示例:handler.ashx + $.ajax() + Json + 分页处理

    在这个示例中,`handler.ashx`可能被用来处理分页数据请求,从数据库中获取指定页码的数据,然后返回JSON格式的结果。 其次,`$.ajax()`是jQuery库中的一个核心函数,用于执行异步HTTP(Ajax)请求。它允许开发者在...

    getJson+ashx实现数据交互(入门级)

    为了与`getJSON`配合使用,我们需要创建一个处理程序来响应GET请求并返回JSON数据。以下是一个简单的C# `.ashx.cs`代码示例: ```csharp using System; using System.Web; using System.IO; using System.Text; ...

    JQuery+json+ashx异步请求分页

    在分页实现中,我们可以创建一个ASHX处理器,接收来自客户端的请求参数,如当前页数和每页数量,然后从数据库或其他数据源中检索对应的数据,最后将这些数据转换成JSON格式响应给客户端。 下面是如何使用JQuery、...

    ASP.NET中使用一般处理程序ashx作为后台处理实现响应get和post请求示例代码.zip

    本示例代码着重展示了如何使用ASHX来处理GET和POST请求,这在构建RESTful API或实现异步数据通信时非常常见。 首先,让我们了解GET和POST请求的基本概念。GET请求通常用于获取资源,是幂等的,意味着多次发送相同的...

    ajax+json+ashx实现列表页.rar

    在本项目中,开发者可能创建了一个名为`List.ashx`的HTTPHandler,该处理器接收AJAX请求,处理数据(例如从数据库查询),然后以JSON格式返回结果。在C#代码中,这个处理程序可能如下所示: ```csharp public class ...

    json+jquery+ashx轻量MVC实例.rar

    `$.getJSON`是jQuery提供的一个异步函数,它向服务器发送GET请求,接收返回的JSON数据,并将其转换为JavaScript对象,无需手动进行JSON.parse操作。 ASHX(HTTP Handler)是ASP.NET中的一种轻量级的处理程序,它...

    AJAX+JSON+ASHX分页源码

    2. 服务器端:ASHX处理程序接收请求,根据传入的参数(如页码和每页大小)查询数据库,获取对应的数据,然后将数据转化为JSON格式返回给客户端。 五、代码注释 源码中应该包含了详细的注释,帮助理解每个部分的功能...

    c#post multipart/form-data和JSON数据

    而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务与客户端之间的数据传输。在C#中,可以使用Newtonsoft.Json库(通常称为Json.NET)来序列化和反序列化JSON数据。发送JSON数据的...

    ajax_json_post_ashx获取参数值

    2. **使用AJAX发起POST请求**:使用jQuery的`$.ajax`或`$.post`函数,指定URL(通常是ASHX处理程序的地址),数据类型为'json',并传递JSON数据。示例代码: ```javascript $.ajax({ type: 'POST', url: '...

    kindEditor编辑器实例

    - **返回响应**:服务器会返回一个JSON或其他格式的响应,告知客户端图片上传的结果,如文件的唯一URL,以便在编辑器中显示。 6. **前端与后端交互**: 前端的KindEditor与后端的JSP通过HTTP或HTTPS协议通信,...

    ajax+json+ashx实现下拉列表三级联动.rar

    服务器端的ASHX处理程序接收请求,查询数据库(如SQL Server)获取相关数据,然后将这些数据转换为JSON格式并返回给客户端。最后,客户端接收到JSON数据后,解析并填充到相应的下拉列表中,完成三级联动的效果。 ...

    ajax异步刷新,一般处理程序返回datatable

    在客户端JavaScript中,接收到JSON响应后,可以使用诸如jQuery的`$.parseJSON()`或者原生的`JSON.parse()`函数将其转换回JavaScript对象,然后动态更新HTML元素,实现异步刷新效果。 总的来说,这个例子展示了如何...

    html编辑器(.net)

    它可能负责接收来自前端的文件上传请求,处理上传过程中的合法性检查、文件存储、返回上传结果等。利用JSON返回数据,使得前端可以获取到关于文件上传状态的反馈,例如成功与否、文件URL等。 `demo.aspx`是ASP.NET...

    Ajax+json+ashx无刷新分页,修改,删除,查看

    ASHX处理程序根据ID执行删除操作,然后返回一个确认消息。 2. **修改**:用户编辑记录并提交,Ajax请求携带修改后的数据发送到服务器。ASHX处理这些数据,更新数据库,然后返回更新结果。 3. **查看**:用户点击查看...

    net+jquery+json实现ajax

    jQuery的getJSON方法是一个异步函数,用于从指定URL获取JSON数据,并在成功时执行回调函数。在这个例子中,它调用了"AjaxHandler.ashx"这个服务端处理程序,然后在回调函数中解析返回的JSON数据。$.each方法用于遍历...

    C# ashx接口实现 实例

    在C#中,我们通过创建一个继承自`System.Web.IHttpHandler`接口的类来定义我们的ASHX处理器。这个类通常包含两个方法:`IsReusable`和`ProcessRequest`。`IsReusable`用于判断处理器实例是否可重用,而`...

    Ajax异步请求

    Ajax异步请求是一种基于JavaScript和XMLHttpRequest对象的技术,允许Web应用程序在不刷新整个页面的情况下,更新页面的一部分内容。它可以实现异步通信,提高用户体验和页面加载速度。 在Ajax异步请求中,...

    ajax+json+ashx实现界面漂亮的搜索功能.rar

    在这种情况下,服务器端的ASHX处理器接收到来自Ajax的请求,执行搜索逻辑,并返回JSON格式的数据。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。...

    Ajax+HTML+ASHX实现文件异步上传

    这可以是一个JSON对象,包含上传状态、文件名等信息,供前端展示。 6. **配置Web.config**:在`Web.config`中,注册你的ASHX处理程序,使其可以在Web应用中被正确地调用。添加一个`&lt;httpHandlers&gt;`或`&lt;handlers&gt;`...

    ajax页面交互ashx

    这段代码向`MyAshxHandler.ashx`发送一个GET请求,并将接收到的JSON数据打印到控制台。 **总结** 在VS2010中,使用Ajax和Ashx可以实现高效的异步页面交互。Ashx处理程序提供了灵活的数据处理方式,适用于Ajax请求...

Global site tag (gtag.js) - Google Analytics