extjs如何实现页面值的传递和接受 extjs如何实现页面值的传递和接受

extjs怎么实现页面值的传递和接受
extjs传参和用什么语言做后台处理没关系,用以下方法传值过去,然后用相应语言接收参数的方法正常接收就行了,
1.ajax方法传值:
Ext.Ajax.request({
                url:‘DoAction.jsp method=add‘,
                params:{UserName:‘张三‘,Gender:‘男‘},//参数列表
                callback:function(options,success,response){//回调函数
                  if(success){
                                    alert(response.responseText);//返回数据
                  }
                }
         })
2.表单传值
定义一个Ext.form.FormPanel,(后台接收参数的名称是表单各元素的id)
var ItemForm = new Ext.form.FormPanel({.....})
然后用ItemForm.getForm().submit提交表单:
ItemForm.getForm().submit({
                 waitMsg:‘正在保存数据,请稍候...‘,
                 waitTitle:‘提示‘,
                 method:‘POST‘,
                 url:‘DataAction.jsp method=save‘,
                 params:{UserName:‘张三‘,Gender:‘男‘},
                 success:function(form,action){
                     //do something here
                 },
                 failure:function(form,action){
                          Ext.Msg.alert(‘提示‘,‘保存失败。‘);
                 }
})
------------------------------------------------------------忧伤的分割线----------------------------------
关于JavaScript中this的使用,这是一个由来已久的问题了。我们这里就不介绍它的发展历史了,只结合具体的例子,告诉大家可能会遇到什么问题,在遇到这些问题时EXT是如何解决的。在使用EXT时,最常碰到的就是使用Ajax回调函数时出现的问题,如下面的代码所示。

现在的HTML 页面中有一个text输入框和一个按钮。我们希望按下这个按钮之后,能用Ajax去后台读取数据,然后把后台响应的数据放到text中,实现过程如代码清单10-6所示。
代码清单10-6 Ajax中使用回调函数
function doSuccess(response) {
    text.dom.value = response.responseText;
}
Ext.onReady(function(){
    Ext.get(‘button‘).on(‘click‘, function(){
        var text = Ext.get(‘text‘);
        Ext.lib.Ajax.request(
            ‘POST‘,
            ‘08.txt‘,
            {success:doSuccess},
            ‘param=‘ + encodeURIComponent(text.dom.value)
        );
    });
});
在上面的代码中,Ajax已经用Ext.get(‘text‘)获得了text,以为后面可以直接使用,没想到回调函数success不会按照你写的顺序去执行。当然,也不会像你所想的那样使用局部变量text。实际上,如果什么都不做,仅仅只是使用回调函数,你不得不再次使用Ext.get(‘text‘)重新获得元素,否则浏览器就会报text未定义的错误。
在此使用Ext.get(‘text‘)重新获取对象还比较简单,在有些情况下不容易获得需要处理的对象,我们要在发送Ajax请求之前获取回调函数中需要操作的对象,有两种方法可供选择:scope和createDelegate。
l    为Ajax设置scope。
function doSuccess(response) {
    this.dom.value = response.responseText;
}
Ext.lib.Ajax.request(
    ‘POST‘,
    ‘08.txt‘,
    {success:doSuccess,scope:text},
    ‘param=‘ + encodeURIComponent(text.dom.value)
);               
在Ajax的callback参数部分添加一个scope:text,把回调函数的scope指向text,它的作用就是把doSuccess函数里的this指向text对象。然后再把doSuccess里改成this.dom. value,这样就可以了。如果想再次在回调函数里用某个对象,必须配上scope,这样就能在回调函数中使用this对它进行操作了。
l    为success添加createDelegate()。
function doSuccess(response) {
    this.dom.value = response.responseText;
}
Ext.lib.Ajax.request(
    ‘POST‘,
    ‘08.txt‘,
    {success:doSuccess.createDelegate(text)},
    ‘param=‘ + encodeURIComponent(text.dom.value)
);
createDelegate只能在function上调用,它把函数里的this强行指向我们需要的对象,然后我们就可以在回调函数doSuccess里直接通过this来引用createDelegate()中指定的这个对象了。它可以作为解决this问题的一个备选方案。
如果让我选择,我会尽量选择scope,因为createDelegate是要对原来的函数进行封装,重新生成function对象。简单环境下,scope就够用了,倒是createDelegate还有其他功能,比如修改调用参数等。

时间: 2024-11-08 19:05:23

extjs如何实现页面值的传递和接受 extjs如何实现页面值的传递和接受的相关文章

事件的分发机制(View篇因此事件传递的顺序是先经过onTouch,再传递到onClick)

参考声明:感谢郭霖http://blog.csdn.net/guolin_blog/article/details/9097463和张鸿洋http://blog.csdn.net/lmj623565791/article/details/38960443 以一个简单的activity为例,该activity中只有一个button,如果我们为该按钮添加监听,只需要这样: 1 button.setOnClickListener(new OnClickListener() { 2 @Override

WPF中ListBox ListView数据翻页浏览笔记(强调:是数据翻页,非翻页动画)

ListBox和ListView在应用中,常常有需求关于每页显示固定数量的数据,然后通过Timer自动或者手动翻页操作,本文介绍到的就是该动作的实现. 一.重点 对于ListBox和ListView来讲,后台绑定的ItemSource绑定的一般都是List<T>格式,而List<T>有个方法是Take和Skip,分别意思是取List部分和跳过List部分. 取数据的格式是:List.take().Skip(); 二.话不多说,实例说话(后面会附有该例子链接,仅供参考) (1)Xam

【转】android 欢迎界面翻页成效,仿微信第一次登陆介绍翻页界面

android 欢迎界面翻页效果,仿微信第一次登陆介绍翻页界面 本实例做的相对比较简单主要是对翻页控件的使用,有时候想要做一些功能是主要是先了解下是否有现成的控件可以使用,做起来比较简单不用费太大的劲去找别的资料,或者别的办法设计.有空多读读android API了解熟悉了做什么都比较容易.(注意:ViewPager用于实现多页面的切换效果,该类存在于Google的兼容包里面,所以在引用时记得在BuilldPath中加入“android-support-v4.jar” 如果sdk是4.0及以上的

1、CRM2011编程实战——清空指定页签下面的所有选项,并对页签下面的指定控件进行操作

需求:当页面加载时,"呼叫编号"保持不变,"任务号"自动更新,"接报时间"和"发生日期"自动设置为当天日期和时间,其它选项全部恢复为初始状态. 字段说明: 控件名称 值 控件名称 值 控件名称 值 反馈单登录 tab_4 任务号 hxcs_ftaskcode 接报时间 hxcs_fdatetimeofcasehappended 发生日期 hxcs_fdatetimeofcasehappended 呼叫编号 hxcs_fcall

CAS在登陆页停留过长时登陆后重回登陆页的问题

CAS停留在登陆页重复时间过长,导致重复登陆的情况: 调试源代码后发现是如下问题: FlowHnadlerAdapter第183行报错导致了Spring直接302跳转.报错信息如下: org.springframework.webflow.execution.repository.NoSuchFlowExecutionException: No flow execution could be found with key 'e1s1' -- perhaps this executing flow

(Android数据传递)Service和Activity之间-- 借助BroadcastReceiver--的数据传递

实现逻辑如下: 左侧为Activity中的执行逻辑,右侧为Service中的执行逻辑: /** * <功能描述> Service和Activity之间的数据交互:具体表现为: 1. 从Service获取数据源,传递到Activity中: 2. * 在Activity中作数据更新: 3. Service中的onCreate()在UI线程中执行,作延时需要在子线程中执行: * * @author Administrator */ public class MainActivity extends

&lt;ext JS&gt; EXTJS的安装、sencha Cmd的安装、EXTJS数据包等

一.EXT的安装 Ext JS SDK. 在右方选择EXTJS,在输入邮箱,选中接受,然后下载,通过邮件的方式发送下载链接. 二.EXTJS的类声明方式与实例化操作 EXTJS声明方法:Ext.define(); EXTJS实例化方法:Ext.create(); 三.组件 组件(component) 是对数据和方法的简单封装. 组件体系: 这种元素间的关系使得组件呈现层级关系.下图 展示了 ExtJS4.x 中组件间层级关系一种实例. 子组件通过容器的items加入到容器中,下面这个例子通过Ex

大页(huge pages) 三大系列 ---计算大页配置参数

使用以下shell 脚本来计算大页配置参数,确保使用脚本实例之前的数据已经开始, 如果数据库的版本号11g,确认是否使用自己主动的内存管理(AMM) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #!/bin/bash # # hugepages_settings.sh # # Linux bash script to compute values fo

dataTable的使用,接受json数据显示在页面上

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><h