http://cam.taoke.alimama.com/event.php?pid=mm_10972871_0_0&eventid=100012
这里主要是后台的异步树上的一些Action.和一个FormPanle,代码挺全
由于工作时间的需要,没有太多的时间给大家写注释了,如果有什么不明白的话,可以给我评论,我会即使的回复...
function createField(fieldLabel, id, name1, value) {
var field = new Ext.form.TextField({
fieldLabel : fieldLabel,
width : 380,
itemCls : 'all-field',
clearCls : 'allow-float',
allowBlank : false,
name : name1,
value : value
});
return field;
}
function saveHandler(win, requestUrl, node, formPanel, isUpdate) {
/*
* Ext.MessageBox.show({ title:'请稍候', msg:'保存中,请稍后...', progress:true,
* buttons: {cancel:'取消'} });
*/
var form = formPanel.getForm();
form.submit({
url : requestUrl,
waitMsg : '保存中,请稍候...',
params : {},
success : function(response, request) {
if (!isUpdate) {
Ext.MessageBox.confirm("状态", "保存成功,继续添加吗?", function(btn) {
if (btn != 'yes') {
win.close();
}
});
} else {
Ext.MessageBox.alert('状态', '保存成功!');
win.close();
}
if (node.isLeaf()) {
var root = node.getOwnerTree().root;
root.reload();
root.expand(true, true);
} else {
var root = node.getOwnerTree().root;
root.reload();
root.expand(true, true);
}
},
failure : function() {
Ext.MessageBox.alert('状态', '保存失败!');
if (node.isLeaf()) {
var root = node.getOwnerTree().root;
root.reload();
root.expand(true, true);
} else {
var root = node.getOwnerTree().root;
root.reload();
root.expand(true, true);
}
}
});
}
// 修改form
function updateForm(node, id, title, win, requestUrl, value, isUpdate) {
var form0 = new Ext.FormPanel({
id : id,
labelWidth : 75, // label settings here cascade unless overridden
frame : true,
title : title,
bodyStyle : 'padding:5px 5px 0',
width : 350,
defaults : {
width : 230
}
});
var nameField = createField('章节名称', 'createItemText' + id + node.id,
'name', value);
form0.add(nameField);
form0.addButton({
text : '保存',
handler : function() {
saveHandler(win, requestUrl, node, form0, isUpdate);
}
});
return form0;
}
// 创建form
function createForm(node, id, title, win, requestUrl, value, isUpdate) {
var form0 = new Ext.FormPanel({
id : id,
labelWidth : 75, // label settings here cascade unless overridden
frame : true,
title : title,
bodyStyle : 'padding:5px 5px 0',
width : 500
// defaults : {
// width : 230
// }
});
var nameField = createField('章节名称', 'createItemText' + id + node.id,
'name', value);
var unitField = createField('组织名称', 'createItemText' + id + node.id,
'unit', value);
var areaField = new Ext.form.TextArea({
fieldLabel : '章节编辑',
// width:980,
// x:400,
// y:400,
// itemCls:'all-field',
// clearCls:'allow-float',
// allowBlank:true,
// style:"width:100px;height:60px;",
// autocomplete: "off",
// height:400,
height : 400,
width : 500,
grow : false,
name : 'sectionText'
});
form0.add(nameField);
form0.add(unitField);
form0.add(areaField);
form0.addButton({
text : '保存',
handler : function() {
saveHandler(win, requestUrl, node, form0, isUpdate);
}
});
return form0;
}
// 编辑form
function editorForm(node, id, title, win, requestUrl, value, isUpdate) {
var form0 = new Ext.FormPanel({
id : id,
labelWidth : 75, // label settings here cascade unless overridden
frame : true,
title : title,
bodyStyle : 'padding:5px 5px 0',
width : 500,
// defaults : {
// width : 1230
// },
reader : new Ext.data.JsonReader({
root : 'list',
fields : [{
name : 'sectionText'
}]
})
});
// var
// nameField=createField('章节名称','createItemText'+id+node.id,'sectionText',value
// );
var nameField = new Ext.form.TextArea({
fieldLabel : '章节编辑',
grow : false,
// inputType : 'textarea',
height : 450,
width : 500,
// labelWidth : 1000,
// growMin : 5,
// labelStyle : 'width:1000px;height:1000px',
// growMax:true,
// width:980,
// x:400,
// y:400,
// itemCls:'all-field',
// clearCls:'allow-float',
// allowBlank:false,
// style:"width:300px;overflow-y:visible",
name : 'sectionText'
});
form0.add(nameField);
form0.addButton({
text : '保存',
handler : function() {
saveHandler(win, requestUrl, node, form0, isUpdate);
}
});
var id = node.id;
form0.getForm().load({
url : '/getSectionText/?id=' + id,
waitMsg : 'Loading'
});
return form0;
}
// 2 创建 tab panel
function createTabPanel(node, e, type, win) {
var createUrl = '/createSection/?id=' + node.attributes.id;
var updateUrl = '/updateSection/?id=' + node.attributes.id;
var editorUrl = '/editorSection/?id=' + node.attributes.id;
var panel = new Ext.TabPanel({
// el: 'hello-tabs',
autoTabs : true,
activeTab : 0,
deferredRender : false,
border : false
});
var form0 = createForm(node, 'form0' + node.id, '新建子章节', win, createUrl,
'', false);
var form1 = updateForm(node, 'form1' + node.id, '修改章节名称', win, updateUrl,
node.text, true);
var form2 = editorForm(node, 'form2' + node.id, '章节编辑', win, editorUrl, '',
true);
panel.add(form2);
panel.add(form0);
panel.add(form1);
return panel;
}
// 组装
function itemManage(node, e) {
var type = "电子书章节管理"
// create the window on the first click and reuse on subsequent clicks
var win = Ext.getCmp('win' + type + node.id);
if (!win) {
win = new Ext.Window({
title : type,
id : 'win' + type + node.id,
layout : 'fit',
maximizable : true,// 最大化
collapsible : true,// 可折叠
width : 800,
height : 600,
// closeAction:'hide',
plain : true
});
var tab = createTabPanel(node, e, type, win);
win.add(tab);
}
win.show();
}
// grid.addListener('rowdbclick',function(){
// alert("123");
// });
Ext.ux.makeMenu = function(node, event, title, requestUrl) {
var rightClick = new Ext.menu.Menu({
id : 'rightClickCont' + node.id,
items : [{
id : node.id + "menu",
text : title,
// 增加菜单点击事件
handler : function() {
Ext.Ajax.request({
url : requestUrl,
params : {
},
success : function(response, request) {
Ext.MessageBox.alert("状态", "删除成功", function() {
});
if (node.isLeaf()) {
var root = node.getOwnerTree().root;
root.reload();
root.expand(true, true);
} else {
var root = node.getOwnerTree().root;
root.reload();
root.expand(true, true);
}
},
failure : function() {
// Ext.MessageBox.hide();
Ext.MessageBox.alert('状态', '删除失败!');
if (node.isLeaf()) {
var root = node.getOwnerTree().root;
root.reload();
root.expand(true, true);
} else {
var root = node.getOwnerTree().root;
root.reload();
root.expand(true, true);
}
}
});
}
}]
});
event.preventDefault();
rightClick.showAt(event.getXY());// 取得鼠标点击坐标,展示菜单
};
分享到:
相关推荐
EXT 增删改查的一个例子,通过它可以大至知道EXT的一些基本使用方法,对于初学者很有帮助
ext.net.community.1.0rc1组件与.net的数据库增删改查操作。通用合适。
使用ext和SQLServer做的一个简单的增删改查的项目,对学习ext的简单操作很有用
接下来 在mysql里建立 数据库位ext的库 再去项目中 src/META-INF/persistence.xml的配置文件里吧<!-- <property name="hibernate.hbm2ddl.auto" value="update" /> -->这句话的注释去掉 好了 部署项目到tomcat上 ...
Ext+2.0+Grid的增删改查.txtExt+2.0+Grid的增删改查.txtExt+2.0+Grid的增删改查.txtExt+2.0+Grid的增删改查.txtExt+2.0+Grid的增删改查.txtExt+2.0+Grid的增删改查.txt
简单的EXT 增删改查
mysql数据库 java MyEclipse做增删改查,前台jsp,后天java
Ext左树有表格 增删改查, 添加子节点,重命名
ext框架和ssh的整合,增删改查功能,ext3.4
Ext范例,增删改查,树treePanel,界面设计Viewpoint
ext 学习资料 网格增删改查 炫酷的效果ext 学习资料 网格增删改查 炫酷的效果
Ext+ssh 实现增删改查小例子,最近用 Ext+Strut2+Spring2.5+Hibernate3.2写了一个小例子,适合初学者,希望更多的人能快速上手,如果觉得写得还行,请留言.
extjs 连接mysql 进行增删改查 代码实例
ext s2sh整合实例 增删改查 ext struts2 spring hibernate MD5加密 验证码技术 ajax技术
自己做的ext增删查改demo ext3.1 ext2.2
eclipse下EXTJS4+STRUTS2+JAVA增删改查的完整例子
extjs增删改查分页树
Extjs用javascript写的,主要用来创建前端用户界面,尤其可以用来开发RIA(Rich Internet Application,富互联网应用系统),是一个与后台技术无关的前端AJAX框架。Extjs可以用在.Net、Java、Php等各种编程语言开发...
Ext框架学习,包括登录,以及登录后主页面的显示,采用美观的布局,一句对后台数据的增删改查,通过Ajax dwr异步获得数据和对store多种请求方式的分析,很适合初学者。欢迎下载
Ext.ux.tree.treegrid异步加载,点击节点加载数据