关于在Ext的Form中加载数据的问题。
一般关于表格数据进行操作的时候,我们的一般操作是分为两种:
1、 选中所需修改的行,然后点击对应的操作按钮进行操作。
2、 双击所需修改的行,弹出一个修改的对话框,进行操作。
于是就出现了一个问题,我们该如何在弹出的Form里加载需要修改的那些数据呢?
解决方案:
以下是一个按钮,及其对应的操作。
{text:'修改2',
handler : function(){
var item = body.getSelectionModel().getSelected();
if(!item){
Ext.Msg.alert("Please Select The Row");
}else{
myFormWin();
loadForm1.form.load({
url : 'updateGridAction.action?Name='+item.get('Name'),
waitMsg : '正在载入数据...',
success : function(form,action) {
Ext.example.msg('编辑', '载入成功!');
},
failure : function(form,action) {
Ext.example.msg('编辑', '载入失败');
}
});
}
}}
然后找到对应的myFormWin函数。
var loadForm1;
var myFormWin = function() {
if (!loadWindow) {
loadForm1 = new Ext.FormPanel( {
// collapsible : true,// 是否可以展开
//url : 'updateGrid.action',
//frame : true,
//title : '修改',
bodyStyle : 'padding:5px 5px 0',
width : 350,
waitMsgTarget : true,
//这个属性决定了load和submit中对数据的处理,list必须是一个集合类型,json格式应该是[]包含的一个数组
//reader: new Ext.data.JsonReader({root:'list'},
reader: new Ext.data.JsonReader({root:'rows'},
[{name: 'Name',mapping:'Name',type:'string'},
{name: 'Sex',mapping:'Sex',type:'boolean'},
{name: 'Phone',mapping:'Phone',type:'string'},
{name: 'Email',mapping:'Email',type:'string'}
]),
defaults : {
width : 230
},
baseCls: 'x-plain',
labelWidth: 55,
defaultType: 'textfield',
items: [{
fieldLabel: 'Name',
name: 'Name',
anchor:'100%'
},{
fieldLabel: 'Sex',
name: 'Sex',
anchor: '100%'
},{
fieldLabel: 'Phone',
name: 'Phone',
anchor: '100%'
},{
fieldLabel: 'Email',
name: 'Email',
anchor: '100%'
}]
/**
buttons : [ {
text : '保存',
disabled : false,
handler : function() {
if (loadForm1.form.isValid()) {
loadForm1.form.submit( {
url : 'AddLevel.action',
success : function(from, action) {
Ext.example.msg('保存成功', '添加级别成功!');
ds.load( {
params : {
start : 0,
limit : 30,
forumId : 4
}
});
},
failure : function(form, action) {
Ext.example.msg('保存失败', '添加级别失败!');
},
waitMsg : '正在保存数据,稍后...'
});
dialog.hide();
} else {
Ext.Msg.alert('信息', '请填写完成再提交!');
}
}
}, {
text : '取消',
handler : function() {
newFormWin.hide();
}
}]*/
});
var loadWindow = new Ext.Window({
iconCls:'btn-save',
title: '修改用户',
width: 500,
height:300,
minWidth: 300,
minHeight: 200,
layout: 'fit',
plain:true,
bodyStyle:'padding:5px;',
buttonAlign:'center',
items: loadForm1,
buttons: [{ text: '确定'
},{ text: '取消'}]
});
loadWindow.show();
}
};
原理是这样的:
当选中一行的时候,再点击修改按钮,这个时候就执行了一些操作,首先是获取被选中行的value,然后是调用函数去创建加载数据的Form,这个Form又通过我们提供的URL去加载JSON格式的数据,这里可以从XML文件中读取或者是从数据库中读取。可以使用JSON的jar包,使得把对象转换成JSON格式的数据更加方便。保存成功后,重新加载一次dataStore。
- 大小: 27.2 KB
分享到:
相关推荐
2. **配置项**:`Ext.form.TextField`支持多种配置项来定制其行为和外观,如`fieldLabel`(字段标签)、`name`(字段名,用于数据绑定)、`width`(宽度)、`maxLength`(最大字符数)等。 3. **验证**:EXT提供了...
根据给定的信息,本文将详细解释“Ext 添加功能form表单实例”的知识点,这主要针对Ext初学者。本文会从创建表单、字段定义、验证规则以及提交逻辑等方面进行深入探讨。 ### Ext 添加功能form表单实例 #### 表单...
在Ext JS这个强大的JavaScript框架中,动态加载表单数据是一种常见的功能需求,特别是在构建数据驱动的应用程序时。本文将深入探讨如何使用JSON格式的数据来实现这一功能,以便于灵活地更新和显示表单内容。 首先,...
在这个“Ext2.0 form使用实例的例程”中,我们将深入探讨Ext 2.0的表单(form)组件及其应用。 表单在任何应用程序中都扮演着至关重要的角色,用于收集和验证用户输入的数据。Ext 2.0的表单组件提供了一整套完整的...
在这个"EXT 2.0 form demo"中,我们将深入探讨EXT在构建动态、交互式表单方面的强大功能。 一、EXT 2.0的核心特性 1. 组件化:EXT 2.0的核心是组件模型,允许开发者将UI元素(如按钮、表格、表单)视为独立的可...
在Ext JS中,`Ext.form_load`涉及到的主要知识点是FormPanel的数据加载机制,这包括了对FormPanel的form对象、BasicForm、doAction方法、Ext.form.Action对象以及JsonReader的使用。以下是对这些概念的详细解释: 1...
数据存储具有加载、刷新、添加、删除和更新数据的能力,并且能够监听数据变化,实时同步UI。此外,Store与Grid、Tree等组件紧密配合,实现数据的展示和交互。 在数据传输过程中,Ext JS提供了Ajax请求(Ext.Ajax)...
- Grid组件是EXT中用于展示表格数据的重要组件,支持数据的排序、筛选等功能。 - **XTemplate** - XTemplate是EXT中用于数据渲染的一种模板引擎,可以将数据动态地插入到HTML中。 - **DataView** - DataView组件...
在“EXT form小例子”中,我们将探讨EXTJS Form组件的基础用法,包括客户端验证和对`Ext.form.Vtype`的扩展。 1. EXTJS Form组件基础: - 表单创建:EXTJS中的表单通常通过`Ext.create`方法创建,如`Ext.create('...
本文将深入探讨Ext JS中的`Form`控件及其相关配置,帮助开发者更好地理解和掌握如何高效地使用这些控件。 #### 二、Ext JS Form控件概述 Ext JS的`Form`控件提供了一套丰富的API用于创建、管理和验证Web表单。该...
在"EXT制作的FORM,可以与Servlet进行交互"这一主题中,我们要讨论的是如何利用EXT form来与服务器端的Servlet进行数据交换。Servlet是一种Java技术,用于扩展Web服务器的功能,处理HTTP请求并返回响应。在EXT form...
在Ext JS框架中,`Ext.form.TextField`是一种用于收集用户输入的基本控件,它提供了丰富的配置选项来实现数据校验。例如,在示例中,通过设置`allowBlank: false`,确保了字段不允许为空;`emptyText`定义了当字段为...
在Ext.js中,`Ext.Store`是用来管理数据的类,它通常与各种UI组件(如Grid、ComboBox等)关联,用于存储和检索数据。然而,获取`Ext.Store`的方式并不像获取其他Ext组件那样直接,因为Store并不是一个具有可视界面的...
在实际开发中,你可以根据需要进一步自定义插件的行为,例如改变年份和月份的显示方式,添加验证规则,或者与服务器端进行数据同步。同时,为了保证兼容性和性能,确保使用的是与你项目中其他Ext JS库版本相匹配的...
在ExtJS中,表单组件由`Ext.form.Panel`创建,它可以包含各种表单字段,如文本框、选择框、日期选择器等,用于数据输入。表单数据与后端服务的交互通常通过`Ext.form.action.Submit`或`Ext.form.action.Load`进行。 ...
在Ext JS中,异步加载是一种常见的数据处理方式,尤其在构建动态的用户界面时非常有用。本篇文章主要探讨了如何在异步加载的场景下,实现树形控件(TreePanel)中节点的动态添加、删除以及ComboBox选择项的修改。 ...
在EXT2中,Form表单是数据输入和用户交互的核心部分。它们允许用户填写和提交信息,通常用于创建动态和复杂的Web表单。EXT2的form表单支持各种字段类型,如文本框、复选框、单选按钮以及我们在此处重点关注的...
在EXT中,"动态新增一行"是指在表格或者布局中,通过用户操作(比如点击按钮)来动态地添加新的行元素,这些元素可以是文本框、下拉框等交互组件。 EXT中的Column Layout是一种布局方式,适用于创建网格或表格形式...
"ext多选下拉列表的全选功能实现"这个主题聚焦于一个特定的UI组件——ExtJS库中的MultiComboBox,这是一种允许用户多选的下拉列表控件。在实际应用中,全选功能常常被用来快速选择所有选项,极大地提高了用户的操作...
3. 在左侧列中添加一个Grid Panel(数据列表),使用Store加载和展示数据。 4. 在右侧列中使用Form Panel来创建表单。Form Panel可以包含多个FieldSet,每个FieldSet代表表单的一个部分。 5. 配置Form Panel的layout...