JavaShuo
栏目
标签
EXTJS 中Ajax 应用示例
时间 2019-11-24
标签
extjs
ajax
应用
示例
栏目
Ajax
繁體版
原文
原文链接
简单的Ext.Ajax. request示例 var requestConfig = { url :'loginServer.jsp',//请求的服务器地址 params : {userName : 'tom',password : '123'},//请求参数 customer : '自定义属性',//附加属性 callback : function(options,success,response){//回调函数 var msg = ["请求是否成功:" ,success,"\n", "服务器返回值:",response.responseText, "本地自定义属性:",options.customer]; alert(msg.join('')); } } Ext.Ajax.request(requestConfig);//发送请求 Ext.Ajax表单提交示例 var requestConfig = { url :'loginServer.jsp',//请求的服务器地址 form : 'loginForm',//指定要提交的表单id callback : function(options,success,response){//回调函数 var msg = ["请求是否成功:" ,success,"\n", "服务器返回值:",response.responseText]; alert(msg.join('')); } } Ext.Ajax.request(requestConfig);//发送请求 Ext.Ajax. request提交xml数据 function login(){ var requestConfig = { url :'loginServerXml.jsp',//请求的服务器地址 xmlData : getXml(),//发送xml文档对象 callback : function(options,success,response){//回调函数 var msg = ["请求是否成功:" ,success,"\n", "服务器返回值:",response.responseText]; alert(msg.join('')); } } Ext.Ajax.request(requestConfig);//发送请求 } //生成xml文档对象 function getXml(){ var name = document.forms['loginForm'].userName.value; var pwd = document.forms['loginForm'].password.value; var dom = new ActiveXObject("msxml2.DOMDocument"); var header = dom.createProcessingInstruction("xml", "version='1.0'"); dom.appendChild(header); var root = dom.createElement("loginInfo"); var userName = dom.createElement("userName"); userName.text = name; var password = dom.createElement("password"); password.text = pwd; root.appendChild(userName); root.appendChild(password); dom.appendChild(root); return dom; } xt.Ajax. request提交json数据 function login(){ var requestConfig = { url :'loginServerJson.jsp',//请求的服务器地址 jsonData : getJson(),//发送json对象 callback : function(options,success,response){//回调函数 var msg = ["请求是否成功:" ,success,"\n", "服务器返回值:",response.responseText]; alert(msg.join('')); } } Ext.Ajax.request(requestConfig);//发送请求 } //生成json对象 function getJson(){ var name = document.forms['loginForm'].userName.value; var pwd = document.forms['loginForm'].password.value; var jsonObj = { userName : name, password : pwd } return jsonObj; } Ext.Updater.update div内容更新器示例 var updater = Ext.get('content-div').getUpdater();//获得元素的更新器 var btns = Ext.select('input');//选择页面中的全部input组件 btns.addListener('click',function(e,b){//成批绑定click事件 update('9-5-'+b.value+'.html');//调用更新函数 }); //定义更新函数 function update(url){ updater.update({//调用更新器的update方法,更新页面元素 url : url }); } 定义渲染器更新页面元素示例 Ext.Updater.defaults.showLoadIndicator = false;//不显示更新指示器 var updater = Ext.get('content-div').getUpdater();//获得元素的更新器 var cusRender = function(){//自定义渲染器 this.render = function(el, response, updateManager, callback){ var time = el.query('input')[0]; time.value = response.responseText; } } updater.setRenderer(new cusRender());//指定自定义渲染器 var btns = Ext.get('updateBtn');//选择页面中id为updateBtn的元素 btns.on('click',function(){//绑定click事件 update();//调用更新函数 }); //定义更新函数 function update(){ updater.update({//调用更新器的update方法,更新页面元素 url : 'timeServer.jsp' }); } 自动定时更新页面元素示例 Ext.Updater.defaults.showLoadIndicator = false;//不显示更新指示器 var updater = Ext.get('serverTime').getUpdater();//获得元素的更新 Ext.get('startAutoBtn').on('click',startAutoUpdate); Ext.get('stopAutoBtn').on('click',stopAutoUpdate); function startAutoUpdate(){ //开始定时自动刷新 updater.startAutoRefresh(1,'timeServer.jsp'); } function stopAutoUpdate(){ //中止定时自动刷新 updater.stopAutoRefresh(); } 提交表单更新页面元素示例 <mce:script type="text/javascript"><!-- Ext.onReady(function(){ Ext.Updater.defaults.indicatorText = '<div class="loading-indicator">登录中....</div>';//设置更新指示器文字 var updater = Ext.get('loginMsg').getUpdater();//获得元素的更新 Ext.get('loginBtn').on('click',login); function login(){ //提交表单,在回调函数中更新页面元素 updater.formUpdate('loginForm','loginServer.jsp'); } }) // --></mce:script> </HEAD> <BODY style="margin=10 10 10 10;" mce_style="margin=10 10 10 10;"> <form id='loginForm'> 用户名:<input name = 'userName' type='text'> 密 码:<input name = 'password' type='password'> <input type='button' value='登录' id='loginBtn'> </form> 状 态:<span id='loginMsg'></span> </BODY> </HTML> 多级联动菜单 <mce:script type="text/javascript"><!-- Ext.onReady(function(){ //将下拉框id顺序存入数组中,以便经过遍历数组级联更新 var lists = ['s1','s2','s3'] //为下拉框绑定change事件的处理函数 Ext.select('select').on('change',function(e,select){ //取得下拉框中选中的值 var value = select.options[select.selectedIndex].value; //取得下拉框id var id = select.id; //经过循环的到下拉框id在lists数组中的索引位置 for(var i = 0 ; i < lists.length ; i++){ if(lists[i] == id){ var index = i; } } //取得相邻下拉框id在lists数组中的索引 var nextIndex = index + 1; if(nextIndex >= lists.length){ nextIndex = lists.length - 1; } //移除相邻下拉框及后续下拉框的值 remove(nextIndex); //为相邻下拉框及后续下拉框加载新值 getList(nextIndex,value); }); //经过Ajax方式为下拉框加载数据, function getList(index,value) { Ext.Ajax.request({ url : 'bookServer.jsp',//请求的服务器地址 params : { target : lists[index], value : value }, callback : function(options,success,response){ if(success){ //取得要更新的下拉框 var select = Ext.get(lists[index]); //执行返回字符串,获得数组对象 var array = eval(response.responseText); //记录数组中的第一各类,该值将做为下级下拉框的默认取值条件 var firstValue; for(var i=0 ; i < array.length ; i++){ var o = array[i]; if(i == 0){ firstValue = o.value; } //向下拉框中追加条目 select.appendChild(createOption(o.value,o.name)); } //若是不是最后一个下拉框则继续加载相邻下拉框的数据 if(index < lists.length){ getList(index + 1,firstValue); } } } }) } //根据传入的value和text建立选项 function createOption(value, text) { var opt = document.createElement("option"); opt.setAttribute("value", value); opt.appendChild(document.createTextNode(text)); return opt; } //级联删除下拉框及子下拉框的值 function remove(index){ for(var i = index ; i < lists.length ; i++){ var select = Ext.get(lists[i]).dom; while(select.length>0){ select.options.remove(select.length-1) } } } //默认加载值为1的教学类列表 getList(1,"1"); //默认列表s1的教学类被选中 Ext.get('s1').dom.selectedIndex = 0; }) // --></mce:script> 自定义渲染器+解码json对象+ json式生成表格(综合示例:天气预报) <mce:script type="text/javascript"><!-- Ext.onReady(function(){ //设置更新指示器文字 Ext.Updater.defaults.indicatorText = '<div class="loading-indicator">读取天气信息....</div>'; //获得元素的更新器 var updater = Ext.get('weather').getUpdater(); //自定义渲染器 var weatherRender = function(){ this.render = function(el, response, updateManager, callback){ //解码响应字符串,获得对应的json对象 var weaObj = Ext.util.JSON.decode(response.responseText); //利用工具类Ext.DomHelper的overwrite方法生成表格并以覆盖方式更新元素el Ext.DomHelper.overwrite(el,{ tag:'table',children:[ {tag:'tr',children:[ {tag:'td',html:'日期:'}, {tag:'td',html:weaObj.date} ]}, {tag:'tr',children:[ {tag:'td',html:'风速:'}, {tag:'td',html:weaObj.windSpeed} ]}, {tag:'tr',children:[ {tag:'td',html:'湿度:'}, {tag:'td',html:weaObj.humidity} ]}, {tag:'tr',children:[ {tag:'td',html:'最高气温:'}, {tag:'td',html:weaObj.maxTemp} ]}, {tag:'tr',children:[ {tag:'td',html:'最底气温:'}, {tag:'td',html:weaObj.minTemp} ]} ] }); } } //指定自定义渲染器 updater.setRenderer(new weatherRender()); //选择页面中id为select的元素 var select = Ext.get('city'); //绑定change事件 select.on('change',function(e,sel){ var cityCode = sel.options[sel.selectedIndex].value; var cityName = sel.options[sel.selectedIndex].text; //调用更新函数,并将选中城市的编码出入更新函数中 updateWeather(cityCode,cityName); }); //定义更新函数 function updateWeather(cityCode,cityName){ updater.update({//调用更新器的update方法,更新页面元素 url : 'weatherServer.jsp', params : {cityCode:cityCode}, callback : function(el,success,response,options){ //读取天气信息失败,则更新页面元素已显示错误提示 if(success == true){ Ext.get('cityName').update(cityName); }else{ el.update("读取 "+cityName+" 天气信息失败!"); } } }); } //默认读取北京的天气状况 updateWeather('CHXX0008','北京'); }) // --></mce:script> Ext.form.HtmlEditor + Updater更新器 + 延时Ajax任务(综合示例:自动保存编辑器) <mce:script type="text/javascript"><!-- Ext.onReady(function(){ Ext.BLANK_IMAGE_URL = '../../extjs2.0/resources/images/default/s.gif'; Ext.QuickTips.init();//使用HtmlEditor以前必须初始化提示 var note = new Ext.Panel({ title:'网络记事本', renderTo : 'webNote', frame : true, layout:'fit', tbar : [ { text : '保存', //点击保存按钮即时执行保存操做不进行延时 handler : saveNode }, '-', '最近保存时间:', Ext.get('saveTime').dom, '-', Ext.get('saveStatus').dom ], items : [ new Ext.form.HtmlEditor({ id : 'content', height : 150, width : 500, fontFamilies : ['宋体','隶书','黑体'],//字体列表 listeners : { //sync事件将在文本发生变化时被触发 sync : editorChange } }) ] }); //取得HtmlEditor组件的引用 var editor = note.findById('content'); //设置更新指示器文字 Ext.Updater.defaults.indicatorText = '<div class="loading-indicator">保存....</div>'; //取得页面中id为saveTime元素的更新器 var timeUpdater = Ext.get('saveTime').getUpdater(); //取得页面中id为saveStatus元素的引用 var saveStatus = Ext.get('saveStatus'); //定义HtmlEditor输入内容发生变化时的处理函数 function editorChange() { //文本变化后延时3000毫秒执行保存操做 task.delay(3000); } //将保存操做转换为一个延时任务 var task = new Ext.util.DelayedTask(saveNode); //定义保存文本内容的函数 function saveNode() { timeUpdater.update({ url : 'noteServer.jsp', method : 'POST', params : { //将文本内容做为参数传递到后台服务器 content : editor.getValue() }, callback : function(el,success,response,options){ if(success == true){ saveStatus.update("<font color='green'>保存成功</font>"); }else{ saveStatus.update("<font color='red'>保存失败</font>"); } } }) } }) // --></mce:script> </HEAD> <BODY style="margin=10 10 10 10;" mce_style="margin=10 10 10 10;"> <div id='webNote' style="width:522"/> <div id='saveTime'/> <div id='saveStatus'/> </BODY> </HTML>
相关文章
1.
ExtJs MVC应用架构示例
2.
ExtJS表格示例
3.
ajax 调用示例
4.
Extjs---desktop应用
5.
Extjs 3.2 EXT中的AJAX
6.
Ajax应用举例
7.
ajax框架---- ExtJS
8.
jquery ajax示例_使用jQuery示例的带有JSP的AJAX
9.
javascript中的ajax案例应用
10.
php+jquery+ajax简单Ajax调用示例
更多相关文章...
•
Thymeleaf+SpringMVC5示例
-
Thymeleaf 教程
•
Redis在Java Web中的应用
-
Redis教程
•
SpringBoot中properties文件不能自动提示解决方法
•
C# 中 foreach 遍历的用法
相关标签/搜索
extjs
例示
示例
Js应用实例
应用
多图示例
示例教程
jQuery示例
示例详解
示例代码
Ajax
MySQL教程
Spring教程
Docker教程
应用
Ajax
注册中心
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
resiprocate 之repro使用
2.
Ubuntu配置Github并且新建仓库push代码,从已有仓库clone代码,并且push
3.
设计模式9——模板方法模式
4.
avue crud form组件的快速配置使用方法详细讲解
5.
python基础B
6.
从零开始···将工程上传到github
7.
Eclipse插件篇
8.
Oracle网络服务 独立监听的配置
9.
php7 fmp模式
10.
第5章 Linux文件及目录管理命令基础
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
ExtJs MVC应用架构示例
2.
ExtJS表格示例
3.
ajax 调用示例
4.
Extjs---desktop应用
5.
Extjs 3.2 EXT中的AJAX
6.
Ajax应用举例
7.
ajax框架---- ExtJS
8.
jquery ajax示例_使用jQuery示例的带有JSP的AJAX
9.
javascript中的ajax案例应用
10.
php+jquery+ajax简单Ajax调用示例
>>更多相关文章<<