首页 Extjs_前后台数据交互

Extjs_前后台数据交互

举报
开通vip

Extjs_前后台数据交互实例内容:通过后台操作提示信息。 //工具栏上的一个按钮 {          text : '审核全部通过',          id : 'delGuestBtn',          iconCls : 'addicon',          minWidth : '50',          handler : function() {           Ext.Ajax.request({            url :'mgr/xjxl.htm?action=shenHeQuanBuTongGuoX...

Extjs_前后台数据交互
实例内容:通过后台操作提示信息。 //工具栏上的一个按钮 {          text : '审核全部通过',          id : 'delGuestBtn',          iconCls : 'addicon',          minWidth : '50',          handler : function() {           Ext.Ajax.request({            url :'mgr/xjxl.htm?action=shenHeQuanBuTongGuoXueLiShuJv',//调用后台对于controller的shenHeQuanBuTongGuoXueLiShuJv'方法            success: function(response,options){Ext.MessageBox.alert('成功',Ext.decode(response.responseText).msg);//获得后台传来的提示            },            failure: function(response,options){             Ext.MessageBox.alert('失败',Ext.decode(response.responseText).msg);//获得后台传来的提示            },            params : {//参数列表             xxmc : Selectedyxmc,             bkorzk : Selectedpycc            },            waitMsg : '数据处理中...'//遮罩           });          }.createDelegate(this)           // end           // handler          } 后台: public void shenHeQuanBuTongGuoXueLiShuJv(HttpServletRequest request,     HttpServletResponse response) throws Exception {     //注意编码格式,不然返回前台是乱码     request.setCharacterEncoding("UTF-8");     response.setContentType("text/json;charset=utf-8");     log.info("reach XjxlController shenHeQuanBuTongGuoXueLiShuJv");         String pycc = request.getParameter("bkorzk");//获得参数 String yxid = request.getParameter("xxmc");    //获得参数     List dshxj;       dshxj = businessService.findXueLiShuJvByYxmcAndPycc(yxid,pycc);       System.out.println(dshxj.size());       if(true)response.getWriter().write("{success:true,msg:'操作成功,本次共操作了"+dshxj.size()+"条数据'}");//成功       else response.getWriter().write("{success:false,msg:'操作失败,本次共操作了"+dshxj.size()+"条数据'}");//失败 Extjs和Asp.NET后台的数据交互1 Ext.data.Connection应该说提供了最为简洁的与后台的异步调用功能 实例如下 首先是aspx页面内容(省略了head和对js文件引用的部分) view plaincopy to clipboardprint?      
                       
               关于Extjs的内容写在jsdataConnection.js文件中 内容如下: view plaincopy to clipboardprint? Ext.onReady(function() {         var form1 = new Ext.form.FormPanel({           width: 350,           frame: true,           renderTo: "form1",           labelWidth: 80,           title: "form1",           bodyStyle: "padding:5px 5px 0",           defaults: { width: 150, xtype: "textfield" },           items: [           {               fieldLabel: "ID",               id: "ID",               anchor: "90%"          },           {               fieldLabel: "name",               id: "name",               anchor: "90%"          }           ],           buttons: [               { text: "確定", handler: function() { doUpdate(); } }           ]         });         //新建连接       var conn = new Ext.data.Connection({           autoAbort: false,           defaultHeaders: {               referer: 'http://localhost:1068'              //此处defaultHeaders可以不设置           },           disableCaching: false,           extraParams: {               params: 'Update'          },             method: 'post',           timeout: 300,           url: 'Handler.ashx'//此处如不指定,则默认访问当前页面       });       /*      其中      ①autoAbort:该request是否会自动断开(默认值false)。       ②disableCaching:设置为true就会添加一个独一无二的cache-buster参数来获取请求(默认值为true)。       ③extraParams:这些属性在该Connection发起的每次请求中作为外部参数使用      ④timeout:连接的超时时间       ⑤method:请求时使用的默认的http方法。【post】【get】       ⑥url:请求的网页地址,关于url最好使用ashx页面文件,      如果用aspx的话要把所有的页面元素都清除干净,否则前台接收到的内容会有问题。      */        function doUpdate() {           //在创建了conn之后,可以调用request()函数发送请求,处理返回的结果,如下面的代码所示。           conn.request({               success: function(response) {                   Ext.Msg.alert('info', response.responseText);                   //response.responseText为返回的信息               },               failure: function() {                   Ext.Msg.alert('warn', 'failure');               }           });       }         //success:成功后执行的方法(参数返回response)       //failure:失败时执行的方法     });  Ext.onReady(function() {     var form1 = new Ext.form.FormPanel({         width: 350,         frame: true,         renderTo: "form1",         labelWidth: 80,         title: "form1",         bodyStyle: "padding:5px 5px 0",         defaults: { width: 150, xtype: "textfield" },         items: [         {             fieldLabel: "ID",             id: "ID",             anchor: "90%"         },         {             fieldLabel: "name",             id: "name",             anchor: "90%"         }         ],         buttons: [             { text: "確定", handler: function() { doUpdate(); } }         ]     });     //新建连接     var conn = new Ext.data.Connection({         autoAbort: false,         defaultHeaders: {             referer: 'http://localhost:1068'             //此处defaultHeaders可以不设置         },         disableCaching: false,         extraParams: {             params: 'Update'         },         method: 'post',         timeout: 300,         url: 'Handler.ashx'//此处如不指定,则默认访问当前页面     });     /*     其中     ①autoAbort:该request是否会自动断开(默认值false)。     ②disableCaching:设置为true就会添加一个独一无二的cache-buster参数来获取请求(默认值为true)。     ③extraParams:这些属性在该Connection发起的每次请求中作为外部参数使用     ④timeout:连接的超时时间     ⑤method:请求时使用的默认的http方法。【post】【get】     ⑥url:请求的网页地址,关于url最好使用ashx页面文件,     如果用aspx的话要把所有的页面元素都清除干净,否则前台接收到的内容会有问题。     */     function doUpdate() {         //在创建了conn之后,可以调用request()函数发送请求,处理返回的结果,如下面的代码所示。         conn.request({             success: function(response) {                 Ext.Msg.alert('info', response.responseText);                 //response.responseText为返回的信息             },             failure: function() {                 Ext.Msg.alert('warn', 'failure');             }         });     }     //success:成功后执行的方法(参数返回response)     //failure:失败时执行的方法 });   其中Handler.ashx的内容如下 (新建ashx文件,我对内容没有做任何改动,除了加上一句注释之外) view plaincopy to clipboardprint? <%@ WebHandler Language="C#" Class="Handler" %>     using System;   using System.Web;     public class Handler : IHttpHandler {              public void ProcessRequest (HttpContext context) {           context.Response.ContentType = "text/plain";                      //返回字符串Hello World                   context.Response.Write("Hello World");               }           public bool IsReusable {           get {               return false;           }       }     }  先看页面中的写法:      var frm;   Ext.onReady(function(){    var form1 = new Ext.FormPanel({     frame : true,     width : 300,     id : "frm",     layout : "form",     title : "添加个人信息",     labelWidth : 70,     labelAlign : "left",     renderTo : "form1",     items : [{      xtype : "textfield",      fieldLabel : "用户名",      name : "username",      allowBlank : false,      blankText : "不能为空!请正确填写!",      anchor : "90%"     },{      xtype : "textfield",      fieldLabel : "昵称",      name : "smallname",      anchor : "90%"     },{      xtype : "datefield",      fieldLabel : "注册日期",      name : "regdate",      anchor : "90%"     }],     buttons : [{      text : "提交", handler : submit     },{      text : "加载", handler : load     },{      text : "取消", handler : reset     }]    })    frm = Ext.getCmp("frm");    //这两句话的意思是:校验    Ext.QuickTips.init();      Ext.form.Field.prototype.msgTarget = 'side';   })    /**submit**/   function submit() {    if (!frm.getForm().isValid())return;    frm.getForm().submit({     waitMsg : "正在提交数据……",     waitTitle : "提示",     url : "http://localhost:8080/ExtJsApp/formServlet",     method : "post",     success : function(form, action) {      Ext.Msg.alert("提示","保存成功!");     },     failure : function(formm, action) {      Ext.Msg.alert("提示","保存失败:" + action.result.errors.info);     }    });   }   /**load**/   function load() {    frm.getForm().load({     waitMsg : "正在加载数据……",     waitTitle : "提示",     url : "http://localhost:8080/ExtJsApp/formServlet",     method : "get",     success : function (form, action) {      Ext.Msg.alert("提示","加载成功!");     }    })   }   /**reset**/   function reset() {    frm.getForm().reset();   }    后台servlet:    @Override  protected void doPost(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {   response.setContentType("text/json; charset=utf-8");   String username = request.getParameter("username");   String smallname = request.getParameter("smallname");   if (username.equalsIgnoreCase("admin") && smallname.equalsIgnoreCase("ad")) {    response.getWriter().print("{success:true,errors:{}}");   } else {    response.getWriter().print("{success:false,errors:{info:'出错了!'}}");   }  }   总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf : 1、表单动作是表单中数据的加载。要给表单中的字段设置值,可以通过调用字段的setValue方法,也可以直接在初始化字段的时候在配置参数中设置value属性值,另外还有一种方法是通过Ajax的方式从服务器端加载表单中各个字段的值。这种方式也就是我们这里要介绍的表单数据加载。   ExtJS的表单数据加载通过BasicForm的load方法来进行,表单数据加载动作由类Ext.form.Action.Load定义,执行数据加载动作会到服务器端加载数据,默认情况下服务器端需要返回一个包含success属性及data属性的JSON对象。 2、Ext.Ajax.request([Object options]) : Number 服务器的响应是异步的,因此需要在回调函数中处理服务器端返回的数据。回调函数可以定义在request方法调用的参数options中。另外,在request方法中可以定义Ajax请求的一些其它属性。参数options是一个对象,该对象包含了Ajax请求所需的各种参数及回调处理参数等。options中可以包含的各个属性及含义如下所示:   url String 指定要请求的服务器端url,默认值为Ajax对象中配置的URL参数值。   params Object/String/Function 指定要传递的参数,可以是一个包含参数名称及值的对象,也可以是name=xx&birthday=1978-1-1类似的url编码字符串,或者是一个能返回上述两种内容的函数。   method String 指定发送Ajax请求使用的method,可以是GET或POST方式。默认情况下,如果请求中没有传递任何参数则使用GET,否则使用POST。   callback Function 指定Ajax请求的回调函数,该函数不管是调用成功或失败,都会执行。传递给回调函数的参数有三个,第一个 options表示执行request方法时的参数,第二个success表示请求是否成功,第三个参数response表示用来执行Ajax请求的 XMLHttpRequest 对象。关于XMLHttpRequest可以通过http://www.w3.org/TR/XMLHttpRequest/查询详细的信息。   success Function 指定当Ajax请求执行成功后执行的回调函数,传递给回调函数两个参数,第一个参数response表示执行Ajax请求的XMLHttpRequet对象,第二个参数表示执行request方法时的options对象。   failure Function 指定当请求出现错误时执行的回调函数,传递给回调函数两个参数,第一个参数response表示执行Ajax请求的XMLHttpRequet对象,第二个参数表示执行request方法时的options对象。   scope Object 指定回调函数的作用域,默认为浏览器window。   form Object/String 指定要提交的表单id或表单数据对象。   isUpload Boolean 指定要提交的表单是否是文件上传表单,默认情况下会自动检查。   headers Object 指定请求的Header信息。   xmlData Object 指定用于发送给服务器的xml文档,如果指定了该属性则其它地方设置的参数将无效。   jsonData Object/String 指定需要发送给服务器端的JSON数据。如果指定了该属性则其它的地方设置的要发送的参数值将无效。   disableCaching Boolean 是否禁止cache。 1.​ HttpServletRequest request = ServletActionContext.getRequest();    2.​     String start = request.getParameter("start");//开始    3.​     String limit = request.getParameter("limit");//结束    4.​     int begin =0;    5.​     int end = 0;    6.​     if(start==null&&limit==null){    7.​         begin=Integer.parseInt((String)request.getSession().getAttribute(start));    8.​         end = Integer.parseInt((String)request.getSession().getAttribute(limit));    9.​     }else {    10.​         begin=Integer.parseInt(start);    11.​         end=Integer.parseInt(limit);    12.​     }    13.​     List
 list = articelService.queryAll(begin,end);    14.​     JSONArray array1 = new JSONArray();    15.​     // 用来格式化时间    16.​     SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd");    17.​     for (int i = 0; i < list.size(); i++) {    18.​         JSONObject object = new JSONObject();    19.​         Article model = (Article) list.get(i);    20.​         object.put("id", model.getId());    21.​         object.put("title", model.getTilte());    22.​         object.put("readycount", model.getReadycount());    23.​         object.put("createtime", d.format(model.getCreatetime()));    24.​     //  if(model.getAltertime().toString()!=null){    25.​             object.put("createtime", d.format(model.getAltertime()));    26.​     //  }    27.​         array1.add(object);    28.​     }    29.​     JSONObject object1 = new JSONObject();    30.​     object1.put("model", array1);    31.​         32.​     int num = articelService.count(0);    33.​     Integer number= num;    34.​     String s = number.toString();    35.​     object1.put("totalProperty", s);    36.​     ServletActionContext.getRequest().setCharacterEncoding("UTF-8");    37.​     ServletActionContext.getResponse().setCharacterEncoding("UTF-8");    38.​     ServletActionContext.getResponse().getWriter().println(object1.toString());    39.​     request.setAttribute("article", object1.toString());  
本文档为【Extjs_前后台数据交互】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_958044
暂无简介~
格式:doc
大小:50KB
软件:Word
页数:10
分类:互联网
上传时间:2011-09-15
浏览量:21