`

Ext实例 - 利用json实现自动填充表单

阅读更多

数据编辑是很常用的开发之一,在ext官方的demo中,我们可以看到利用xml填充表单的demo,但是需要认为触发,且没有json方便,贼给出个例子,可以自动填充表单,数据采用json形式

代码: 全选
/**
* 创建条件设置表单
*/
function formPannel () {
   Ext.QuickTips.init();
   Ext.form.Field.prototype.msgTarget = 'side';
   return new Ext.FormPanel({
      //url:'index.php?mo=emoneycondition&do=getset&r='+Math.random(),
      reader:reader,
        labelWidth: 75, // label settings here cascade unless overridden
      border:false,
        bodyStyle:'padding:5px;background-color:#d2e0f2;',
      buttonAlign:'center',
        labelAlign:'right',
      width:400,
        items: [
            gameSelect = new Ext.form.ComboBox({
               fieldLabel: "游戏",
               hiddenName:'game',
               store: gameds,
               valueField:'game_id',
               displayField:'game_name',
               editable:false,
               mode: 'remote',
               triggerAction: 'all',
               emptyText:"请选择",
               selectOnFocus:true,
               allowBlank:false,
               blankText:'请选择一款游戏',
               width: 300,
               listeners:{
                        select:function(gameSelect){
                                    serverSelect.setValue('');
                           serverds.load({params:{game: gameSelect.getValue()}});
                        }
                       }
            }),serverSelect = new Ext.form.ComboBox({
               fieldLabel: "所在大区",
               hiddenName:'area',
               store: serverds,
               valueField:'server_id',
               displayField:'server_name',
               editable:false,
               mode: 'local',
               triggerAction: 'all',
               emptyText:"请选择",
               selectOnFocus:true,
               allowBlank:false,
               blankText:'请选择大区',
               width: 300,
               listeners:{//这里的监听事件触发填充表单,也可以不放在监听事件里
                        select:function(o){
                                                                    //利用ajax返回数据
                            Ext.Ajax.request({
                                        url:'index.php?mo=emoneycondition&do=getset&r='+Math.random(),
                              success: function(result, request) {
                                                                                        //对json进行反编码
                                 var json = Ext.util.JSON.decode(result.responseText);
                                 formPanel.form.findField('card').setValue(json.card);
                                            //填充表单
                                            formPanel.form.findField('buy_type').setValue(json.buy_type);
                                            //formPanel.form.findField('date_space').setValue(json.date_spacing);
                                            formPanel.form.findField('no_buy').setValue(json.no_buy_days);
                                            //formPanel.form.findField('date').setValue(json.search_time);
                                            formPanel.form.findField('level_offset').setValue(json.level_condition);
                                 formPanel.form.findField('emoney_offset').setValue(json.emoney_condition);
                                 formPanel.form.findField('emoney').setValue(json.emoney);
                                 formPanel.form.findField('level').setValue(json.level);
                              },
                              failure: Ext.Ajax.failure,
                              params:{gameid:formPanel.form.findField('game').getValue(),area_id:formPanel.form.findField('area').getValue()}
                                    });
                        }
                       }
            }), cardSelect = new Ext.form.ComboBox({
               fieldLabel: "密保卡",
               hiddenName:'card',
               store: cardstore,
               valueField:'value',
               displayField:'text',
               editable:false,
               mode: 'local',
               triggerAction: 'all',
               emptyText:"请选择",
               selectOnFocus:true,
               width: 300
            }),buyTypeSelect = new Ext.form.ComboBox({
               fieldLabel: "交易类型",
               hiddenName:'buy_type',
               store: buyTypeStore,
               valueField:'value',
               displayField:'text',
               editable:false,
               mode: 'local',
               triggerAction: 'all',
               emptyText:"请选择",
               selectOnFocus:true,
               width: 300
            }),nobuy = new Ext.form.NumberField({
                fieldLabel:'未交易天数',
                name:'no_buy',
                allowDecimals:true,
                allowNegative :false,
                width: 300
            }),{
               layout:'column',
               border:false,
                    items:[{
                  columnWidth:.4,
                  layout: 'form',
                  bodyStyle:'background-color: #d2e0f2',
                  border:false,
                  items: [
                     levelOffset = new Ext.form.ComboBox({
                        fieldLabel: "玩家等级",
                        hiddenName:'level_offset',
                        store: store,
                        valueField:'value',
                        displayField:'text',
                        editable:false,
                        mode: 'local',
                        triggerAction: 'all',
                        emptyText:"请选择",
                        selectOnFocus:true,
                        anchor: '100%'
                     })
                  ]
               },{
                  columnWidth:.6,
                  layout: 'form',
                  border:false,
                  bodyStyle:'background-color: #d2e0f2',
                  items: [
                     levelSelect = new Ext.form.NumberField({
                         fieldLabel:'等级',
                         name:'level',
                         allowDecimals:true,
                         allowNegative :false,
                         anchor: '96%'
                     })
                  ]
               }]
            },{
               layout:'column',
               border:false,
                    items:[{
                  columnWidth:.4,
                  layout: 'form',
                  bodyStyle:'background-color: #d2e0f2',
                  border:false,
                  items: [
                     emoneyOffset = new Ext.form.ComboBox({
                        fieldLabel: "代币数",
                        hiddenName:'emoney_offset',
                        store: store,
                        valueField:'value',
                        displayField:'text',
                        editable:false,
                        mode: 'local',
                        triggerAction: 'all',
                        emptyText:"请选择",
                        selectOnFocus:true,
                        anchor: '100%'
                     })
                  ]
               },{
                  columnWidth:.6,
                  layout: 'form',
                  border:false,
                  bodyStyle:'background-color: #d2e0f2',
                  items: [
                     emoney = new Ext.form.NumberField({
                         fieldLabel:'代币',
                         name:'emoney',
                         allowDecimals:true,
                         allowNegative :false,
                         anchor: '96%'
                     })
                  ]
               }]
            }
        ],

        buttons: [{
            text: '更新',
         //查询函数开始
         handler: function(){
                  if(formPanel.form.isValid()){
                     formPanel.form.submit({
                        url:'index.php?mo=emoneycondition&do=update',
                        waitMsg:"正在保存...",
                        waitTitle: "请稍等",
                        params:{
                                gameid:formPanel.form.findField('game').getValue(),
                               area_id:formPanel.form.findField('area').getValue(),
                               card:formPanel.form.findField('card').getValue(),
                                         buy_type:formPanel.form.findField('buy_type').getValue(),
                               //date_spacing:formPanel.form.findField('date_space').getValue(),
                               no_buy_days: formPanel.form.findField('no_buy').getValue(),
                               level_offset:formPanel.form.findField('level_offset').getValue(),
                                         level:formPanel.form.findField('level').getValue(),
                               emoney_offset:formPanel.form.findField('emoney_offset').getValue(),
                               emoney_condition:formPanel.form.findField('emoney').getValue()
                               //search_time:new Date(formPanel.form.findField('date').getValue()).toDateString()
                        },
                        success: function(form,action){
                           if (action.result.msg=='ok') {
                              Ext.MessageBox.hide();
                              Ext.Msg.alert("成功","数据更新成功!");
                           } else {
                              Ext.Msg.alert("错误",action.result.msg);
                           }
                        },
                        failure: function(){
                           Ext.Msg.alert("错误", "服务器错误,请稍候再试!");
                        }
                     });
                  }
                }
         //查询函数结束
        },{
          text:'重置',
         handler:function(){formPanel.form.reset()}
      }]
    });
}
分享到:
评论

相关推荐

    EXT实例+JSON

    EXT实例与JSON的结合使用,通常涉及到以下几个关键步骤: 1. **创建数据模型(Model)**:EXT允许定义数据模型来描述数据结构,这有助于保持数据的一致性。例如,你可以创建一个名为`Person`的模型,包含`name`和`...

    ext实例综合

    "EXT实例综合"是一个关于JavaScript库EXT的专题学习资料,主要涵盖了EXT 2.0.2版本中的ASP.NET(.aspx)环境下的应用。EXT是一个强大的JavaScript框架,专为构建富客户端Web应用程序而设计,提供了丰富的组件和数据...

    ext简单的增删改查

    在这个"EXT简单的增删改查"项目中,开发者利用EXTJS与SQLServer数据库相结合,实现了基本的数据管理功能,包括添加(Add)、删除(Delete)、修改(Update)和查询(Query)。 1. EXTJS的基本概念: - 组件...

    Ext 完整例子(含Excel导出)

    5. **可能的数据文件**:例如JSON格式的静态数据,用于填充示例应用。 6. **可能的测试数据或示例数据**:帮助用户了解如何使用和操作应用。 要深入学习这个例子,你需要熟悉以下几个关键点: - Ext的组件体系:如...

    Extjs中文教程

    - 可以通过配置验证规则来实现自动验证。 #### 十七、FormPanel布局与初始化 - **布局概述** - 表单布局决定了各个表单组件的排列方式。 - 常见的布局方式包括水平布局、垂直布局等。 - **分割吧!** - 通过`...

    EXT中文手册 Grid Form

    EXT还支持通过Ajax技术异步地填充表单数据或提交表单数据到服务器。 #### EXT中的继承 EXT采用了面向对象的设计模式,支持类的继承。开发者可以基于现有的类来创建新的子类,从而实现代码的复用。 #### 补充资料 ...

    Ext Js权威指南(.zip.001

    9.4.10 自动布局:ext.layout.container.auto / 453 9.4.11 表格布局:ext.layout.container.table / 454 9.4.12 列布局:ext.layout.container.column / 455 9.4.13 自适应布局:ext.layout.container....

    ExtJs中文教程

    - 讲解如何预填充表单数据以及如何根据服务器响应动态更新表单状态。 #### 十九、表格组件——GridPanel 1. **表格与GridPanel** - GridPanel是ExtJs中最常用的表格组件。 2. **列模型与数据** - 列模型定义了...

    ext2.2demo

    2. 数据加载:在“mynews”示例中,EXT2.2可能利用AJAX获取新闻数据,动态填充到表格或列表中,无需页面整体刷新。 3. 响应处理:EXT2.2提供了解析XML、JSON等格式数据的能力,使开发者能够轻松处理服务器返回的数据...

    extjs 增删改查

    在这个“extjs 增删改查”的主题中,我们将深入探讨如何利用ExtJS框架、JSON数据格式以及JDBC(Java Database Connectivity)来实现数据的增删改查功能,并带有分页显示。 首先,让我们了解ExtJS中的基础组件。`Ext...

    extjs帮助文档pdf版

    - `Ext.util.JSON.decode(json)`: 将JSON字符串转换为JavaScript对象。 #### 19. Ext.util.Format 类 (P.20) - **概述**:提供了数据格式化方法。 - **常用方法**: - `Ext.util.Format.date(value, format)`: ...

    ext 学习笔记

    当涉及到表单时,`Ext.getCmp("formId").getForm()`返回一个`Ext.form.FormPanel`实例,这允许开发者进一步操作表单,比如提交表单数据、验证字段等。 ### 数据绑定与组合框操作 在Ext JS中,组合框(`combo`)是一...

    ext.net Desktop

    在EXT.NET桌面应用中,开发者可以利用EXT.NET的各种组件,如GridPanel(数据网格)、FormPanel(表单)、Window(窗口)等,构建出复杂且高效的Web应用。这些组件都具有高度自定义性和灵活性,能够满足各种业务需求...

    EXTJS小系统

    EXTJS小系统是一种基于JavaScript的前端开发框架EXT JS的应用实例,用于构建用户界面。EXT JS提供了丰富的组件库,包括表格、面板、表单、菜单等,使得开发者可以快速地搭建功能齐全、美观的Web应用程序。这个小系统...

    使用EXT实现无刷新动态调用股票信息

    在提供的代码示例中,股票信息的数据字段被组织在一个名为`dataset`的数组中,之后创建了一个`Ext.data.SimpleStore`实例,并最终把这个数据源与`Ext.grid.GridPanel`(即页面上展示的表格)关联起来。通过这种方式...

    ext多选下拉框(代码及例子)

    3. **数据源**:EXTJS中的Combo通常需要一个数据源来填充下拉列表,这可以通过`store`属性实现,数据源可以是JSON、XML或者其他EXTJS支持的数据格式。 4. **lovcombo.html和lovcombo.js**:这两个文件是示例的主要...

    extjs实践大量实例讲解

    网格中的每一列都绑定了相应的数据字段,实现了数据与视图的自动同步。 ### 示例 3:表单验证 ```javascript var form = Ext.create('Ext.form.Panel', { title: 'Basic Form', width: 300, bodyPadding: 10, ...

    轻松搞定Extjs

    这一章节讲述了如何利用Extjs实现页面结构与逻辑的完全分离,提高程序的可维护性和扩展性。 - **Extjs是脚本的世界**: 强调了Extjs作为客户端脚本框架的角色定位。 - **Ext.onReady事件**: 介绍了一个重要的生命...

    Extjs复习笔记(十五)-- JsonReader

    JsonReader是ExtJS数据包(Ext.data)的一部分,用于从服务器获取JSON格式的数据,并将这些数据转换为可以在ExtJS组件中使用的模型实例。它充当了一个中间人,解析JSON响应并填充Store对象,使得数据能够被Grid、...

    ExtAsp.net经典文档

    - **表单交互**:利用ExtJS的FormPanel与ASP.NET的表单验证结合,进行用户输入验证和数据提交。 - **图表展示**:结合ASP.NET的图表控件和ExtJS的图表组件,实现动态数据可视化。 **5. 开发环境与工具** 在本实例中...

Global site tag (gtag.js) - Google Analytics