`
echoetang
  • 浏览: 40410 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

EXT使用笔记(二)

阅读更多

近期开发一个项目要使用到EXTJS,从完全不懂摸索着进行,到将项目完成,过程中发现很多问题,因为是新手,我根据我的学习方式将我的问题记录下来了,方便遇到相同问题的人们,里面部分是网上收集的,大部分是自己总结的,

转载请注明出处(http://echoetang.iteye.com/admin/blogs/510499 By:Gxmis-alextang)

addWindow.show();

                         }

获取record中的数据

record.data.systemversion

//页面重定向

 handler:function(){

    alert('谢谢您再使用本系统!');

    window.location.href = 'login.html';                             

    }

 

//通过id获取某个组件的方法1

Ext.getCmp('id').getValue();

或者: panel.findById(‘id’);

Panel.getComponent(‘id’);

 

 

//获取容器的items属性中的某个组件的方法

例如: panel.items.itemAt(0);

如果items中的组件要访问items里面另外一个的组件则:this.ownerCt.items.itemAt(4);

 

//TextItem的使用

items:[new Ext.Toolbar.TextItem('  XXX 您好,欢迎使用ACC系统.'),'','->','',

    '-',new Ext.Toolbar.TextItem('当前时间:'), clock,'-',

    {id:'logOutBtn',tooltip:'退出系统',iconCls: 'icon-hide-inherited'......

 

 

//某个框架内加入面板

function goto(url,title){  

    //获取中间显示信息的面板

       var center = Ext.getCmp('pCenter'); 

       //为框架添加一个页面

       var html = "<iframe id='frmForm' name='frmForm' src='"+url+"' width='100%' height='100%'></iframe>";

       //获取标题

       if(Ext.getCmp(title)){

           //检查是否有该标题的面板

           //要是已经有该标题的面板则设置该面板为活动面板

           center.setActiveTab(title);

       }else{

           //不存在该标题的面板则创建一个面板

           center.add({

              title:title,

              id:title,

              region:'center',

              closable:true,

              border:false,

              html:html

              }).show;

           center.setActiveTab(title);

       }

    };

 

//设置窗口中的按钮对齐方式

buttonAlign:'center',

              buttons:[

                      {text:'保存',handler:function(){alert('保存数据');}},

                      {text:'重置',handler:function(){alert('重置数据');}}

                      ],

 

//获取json字符串中的一个值

我只会ExtJS中的方法:

var user="{ name: 'username', value: 'jresig' }";

var u =Ext.util.JSON.decode(user);

var u_name=u.name;

 

//使用json jar包进行传送数据的配置

<constant name="struts.objectFactory" value="spring"></constant>

    <include file="struts-default.xml"/>

   

    <!-- JSON,传送JSON数据 -->

    <package name="json" extends="json-default">

    <action name="showalluser" class="ShowAllUser" method="getAllUser">

    <result type="json">

    <param name="root">userList</param>   

    </result> 

    </action>

    </package>

 

    <!-- struts -->

    <package name="userlogin" extends="struts-default"  >

 

 

//2种提交数据并且获取后台数据的方法

第一种使用单纯Ajax进行提交:

Ext.lib.Ajax.request(

              'POST',//提交方式

              'sub.action',//提交目的url

              {

            success:function(response){//成功响应的回调方法,参数response包含后台传过来的数据

           alert(response.responseText); //打印后台传过来的数据

         var result = Ext.decode(response.responseText); //json字符串数据转换成json对象数据

                   alert(result.pass); //获取Json对象中的某个值

              },

              failure:function(){//响应失败的时候的回调方法

                  

              }        

              },

              panel.getForm().getValues(true)  //Ajax提交的辅助方法,用于获取当前FormPanel中的所用数据,进行提交,true表示获取到的数据位Json组装的字符串,false返回的是Json对象

             

              );

 

也可以传递自己想要的任意数据:

Ext.lib.Ajax.request(

              'POST',

              'sub.action',

              {

              success:function(response){

                   alert(response.responseText);

                   var result = Ext.decode(response.responseText);

                   alert(result.pass);

              },

              failure:function(){

                  

              }        

              },

               // panel.getForm().getValues(true) 

               'user.name=tangtang' //传递任意想要的数据,但是action那边要使用对象来接受数据,通过依赖注入的方式来接受  

              );

//建议这样传

Ext.Ajax.request({

                            url : 'deleteCompany.action',

                            //提交参数

                            params : {

                                 //这里就可以把某个参数传递到action中去

//action中接受数据是这样的(或者直接写一个和前台一样名字的变量,为这个变量提供setget方法,struts2就能通过依赖注入的方式进行微他赋值,获取前台的数据)

//String strCompanyId = ServletActionContext.getRequest().getParameter("companyId");

                                 companyId : record.data.companyId

                            },

                            success : function() {

                                 grid_company.getStore().remove(record);

                            },

                            failure : function() {

                                 Ext.Msg.show({

                                     title : '错误提示',

                                     msg : '删除时发生错误!',

                                     buttons : Ext.Msg.OK,

                                     icon : Ext.Msg.ERROR

                                 });

Ext.Ajax.request({

     url:'updateoradd.action',

     method:'POST',

     success:function(){Ext.Msg.show('chengong');},

     failure:function(){Ext.Msg.show('shibai');},

     params:{

       

        'sysversion.id.subsystem':Ext.getCmp('versubsystemname').getValue(),

        'sysversion.id.termianlid':Ext.getCmp('versystemid').getValue(),

        'sysversion.currentversion':Ext.getCmp('vernowversion').getRawValue(),

        'sysversion.planversion':Ext.getCmp('verupdatetoversion').getRawValue(),       

        'sysVersionHis.operator':'000000',   //操作人要根据登陆的人进行填充

        'sysVersionHis.changedtype':'0' //改变类型要根据操作修改     

     }

    

     });

第二种提交方式的实现方法1:

直接在FormPanel的属性中配置以下:

url:'sub.action', //提交目的的url

        method:'post',  //提交方式

        listeners:{  //FormPanel的监听属性

      "actioncomplete":function(_form,_action){ //当服务器响应完成后的回调函数actioncomplete

        alert(_action.response.responseText); //打印后台传回的数据

       

        var myobj = Ext.util.JSON.decode(_action.response.responseText);//转换成json对象

            

                alert(myobj.name);  //获取对象的某个值

        }

        },

 

另外在按钮的事件响应里面提交数据:

buttons:[

       

        //提交按钮对象 用{}生成兑对象

              {  

            text:'Login',

            handler:function(){

               panel.getForm().submit(); //为当前FormPanel进行提交,提交的时候自动收集所有的

数据提交给后台

..

 

第二种提交方式的实现方法2:

直接在button的内部进行提交:

handler:function(){  

              //提交数据

                   

                   panel.form.submit({                      

                       // clientValidation :true,//是否实行前台验证  

                        method:'post',//发送发送方式 GETPOST  

                        waitMsg :' Wait....',//提交信息时候等待信息  

                        waitTitle :'Loding',//提交信息时候等待信息的标题  

                        url:'sub.action',//提交页面  

                        timeout :200,//超时的秒数  

                        

                        success:function(form,action){//验证成功的执行函数

                            alert(action.response.responseText);

                             //panel.getForm.load({url:'http://localhost:8080/testformsubmit/out.jsp',waitMsg:'dengdeng'});

                          //location.href = '/AccWeb/accwebpages/success.jsp';

                    },  

                        failure :function(form,action){//验证失败的执行函数 

                            //alert(action.reponse.responseText);

                            Ext.Msg.alert('Info','Submit fail!');

                               }

                    });

                 

            }

 

extjs中form与grid交互数据(record

 首先在gridtbar中定义编辑按钮:

Js代码

  1. id:'editDataButton',  
  2. text:'编辑',  
  3. tooltip:'编辑',  
  4. iconCls:'edit',  
  5. handler: function(){ showeditPanel();}  

id:'editDataButton',

text:'编辑',

tooltip:'编辑',

iconCls:'edit',

handler: function(){ showeditPanel();}

 

再定义form

Js代码

  1. var xjjlEditForm = new Ext.FormPanel({.......省略form中的定义内容........});  

var xjjlEditForm = new Ext.FormPanel({.......省略form中的定义内容........});

 

然后定义编辑按钮要调用的函数showeditPanel(同时定义一个加载formwindow)

Js代码

  1. //--编辑按钮调用的函数(弹出编辑窗体)  
  2. function showeditPanel()  
  3. {       //直接取得选中的行对应的record  
  4.         var record = grid.getSelectionModel().getSelected()   
  5.         if(!record){  
  6.             Ext.Msg.alert('信息','请选择要编辑的数据');  
  7.             return;  
  8.         }  
  9.           
  10.         //--定义编辑窗体  
  11.         if(!xjjlEditWindow)  
  12.         {  
  13.             xjjlEditWindow = new Ext.Window({  
  14.                 el: 'edit_win',  //前端放置当前js文件的页面中的div名称  
  15.                 title:'编辑记录',  
  16.                 width: 650,  
  17.                 height: 360,  
  18.                 closable: false,  
  19.                 closeAction: 'hide',  
  20.                 resizable: false,   
  21.                 items: xjjlEditForm //window中加载编辑的form  
  22.             });           
  23.               
  24.         }  
  25.         xjjlEditWindow.show(Ext.get('editDataButton'));//显示编辑窗口  
  26.           
  27.        //[注 意]xjjlEditWindow.show();  xjjlEditForm.getForm().loadRecord(currrecordRecord); 就可以解决之前的页面加载完成以后,第一 次点击[编辑]按钮时无法加载数据到form的问题了。  
  28.         xjjlEditForm.getForm().loadRecord(record); //关键是这里用当前选中的grid中的record填充form  
  29.     }  

//--编辑按钮调用的函数(弹出编辑窗体)

function showeditPanel()

{       //直接取得选中的行对应的record

    var record = grid.getSelectionModel().getSelected()

    if(!record){

      Ext.Msg.alert('信息','请选择要编辑的数据');

      return;

  }

 

  //--定义编辑窗体

  if(!xjjlEditWindow)

  {

   xjjlEditWindow = new Ext.Window({

       el: 'edit_win',  //前端放置当前js文件的页面中的div名称

       title:'编辑记录',

       width: 650,

       height: 360,

       closable: false,

       closeAction: 'hide',

      resizable: false,

       items: xjjlEditForm //window中加载编辑的form

   });  

  

    }

    xjjlEditWindow.show(Ext.get('editDataButton'));//显示编辑窗口

   

分享到:
评论

相关推荐

    ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记

    ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记ext2.0笔记...

    ext学习笔记代码

    ext学习笔记代码 ext学习笔记代码 ext学习笔记代码

    Gwt-ext学习笔记

    这篇学习笔记将深入探讨Gwt-ext的核心概念、功能以及如何在实际项目中应用。 GWT是由Google开发的一个开源框架,它允许开发者使用Java语言来编写前端Web应用。GWT编译器会将Java代码转换为优化过的JavaScript,以...

    Ext学习笔记

    Ext JS4学习教程+笔记(二)事件处理 Ext JS4学习教程+笔记(六)DataView面板 Ext JS4学习教程+笔记(七)树面板Tree Panel Ext JS4学习教程+笔记(三)Ajax请求 Ext JS4学习教程+笔记(五)Form Panel的使用 Ext...

    Yui_ext 学习笔记

    【Yui_ext 学习笔记】 Yui_ext 是基于 Yahoo! UI Library (YUI) 的扩展,主要用于构建富客户端的 Web 应用程序。这篇学习笔记主要介绍了 Yui_ext 的基础知识,适合对 JavaScript 和 HTML DOM 有一定了解的初学者。 ...

    Gwt-ext学习笔记之基础篇

    ### Gwt-ext学习笔记之基础篇 #### 一、安装CypalStudio工具 为了能够开始Gwt-ext的学习之旅,首先需要确保开发环境已经搭建好。CypalStudio是一款非常实用的工具,它能帮助开发者更高效地进行GWT项目的开发。 1....

    ext2.0升级ext3.1笔记

    标题中的"ext2.0升级ext3.1笔记"指的是Linux操作系统中文件系统从第二代扩展文件系统(ext2)升级到增强型日志文件系统(ext3)的一个过程。这个过程涉及到对磁盘布局、元数据管理和数据安全性等方面的改进。ext2是...

    ext api,ext 学习笔记,SWFUpload_多文件上传及部分工具

    EXT API的学习笔记涵盖了EXT库的使用方法、组件创建、事件处理、数据绑定等多个方面,帮助开发者深入理解EXT的机制。 在EXT环境中搭建,首先需要下载EXT库,包括JavaScript文件和必要的CSS样式表。然后,在HTML页面...

    十分有用有帮助的EXT学习笔记

    EXT的学习笔记不仅涵盖了基础组件的使用,还可能包括了以下更深入的知识点: - **Store和Model**: Store是用来管理数据集的组件,它可以与服务器进行交互,加载和保存数据。Model定义了数据的结构和行为,它是Store...

    EXT学习笔记-项目应用实践

    这篇EXT学习笔记主要涵盖了EXTJS中面向对象编程的一些关键概念和实践,包括命名空间、类定义、构造函数、属性与方法的访问控制(私有和公有)、静态属性与方法以及继承机制。 1. **命名空间**:在EXTJS中,命名空间...

    Ext API详解--笔记

    这篇笔记将深入探讨Ext Js的核心API,涵盖多个关键模块。 1. **Ext.Element**: `Ext.Element`是Ext Js中的基础元素操作类,它封装了对DOM元素的各种操作,如尺寸调整、样式修改、事件处理等。在`EXT核心API详解...

    ext学习笔记

    ext笔记,帮助你了解和熟悉ext,一个很不错的ext帮助笔记

Global site tag (gtag.js) - Google Analytics