A. extjs4和extjs5的区别
升级到5之后, MVVM引入之后又一次简化了EXT的逻辑操作
B. 本人现在学习ExtJS,谁有ExtJS的入门教程视频,(清晰版的)适合初次接触ExtJS的学员使用。
ExtJs视频教程(上).avi
http://dl.vmall.com/c0ubbdxakh
ExtJs视频教程1(下).avi
http://dl.vmall.com/c05tezhwon
ExtJs视频教程10(上).avi
http://dl.vmall.com/c009bcd6dk
ExtJs视频教程10(下).avi
http://dl.vmall.com/c0fp5fs6oi
ExtJs视频教程11.avi
http://dl.vmall.com/c0aj02ib0c
ExtJs视频教程12(上).avi
http://dl.vmall.com/c004973idh
ExtJs视频教程12(下).avi
http://dl.vmall.com/c001rgrdtm
ExtJs视频教程13.avi
http://dl.vmall.com/c009ygzh6w
ExtJs视频教程14.avi
http://dl.vmall.com/c0e0cqlee6
ExtJs视频教程15.avi
http://dl.vmall.com/c06bm3kof6
ExtJs视频教程16(上).avi
http://dl.vmall.com/c0gtdad07s
ExtJs视频教程16(下).avi
http://dl.vmall.com/c09uppmxxg
ExtJs视频教程17.avi
http://dl.vmall.com/c0x9q2jsy1
ExtJs视频教程18(上).avi
http://dl.vmall.com/c0r7wsjny8
ExtJs视频教程18(下).avi
http://dl.vmall.com/c0ljkgvdbt
ExtJs视频教程19(上).avi
http://dl.vmall.com/c0sxwb3mcs
ExtJs视频教程19(下).avi
http://dl.vmall.com/c0bne69ab3
ExtJs视频教程2(上).avi
http://dl.vmall.com/c0rb2nksiv
ExtJs视频教程2(下).avi
http://dl.vmall.com/c0lntha1ha
ExtJs视频教程20(上).avi
http://dl.vmall.com/c0xo6ry6uv
ExtJs视频教程20(下).avi
http://dl.vmall.com/c09bft5oab
ExtJs视频教程21(上).avi
http://dl.vmall.com/c0e8pmwasl
ExtJs视频教程21(下).avi
http://dl.vmall.com/c0oc248n7g
ExtJs视频教程22(上).avi
http://dl.vmall.com/c0x3umxbwa
ExtJs视频教程22(下).avi
http://dl.vmall.com/c06tuk2ggc
ExtJs视频教程23.avi
http://dl.vmall.com/c0e7baf0pi
ExtJs视频教程24(上).avi
http://dl.vmall.com/c0movwp3a4
ExtJs视频教程24(下).avi
http://dl.vmall.com/c0rg5l5j5b
ExtJs视频教程25(上).avi
http://dl.vmall.com/c0cov3b0iq
ExtJs视频教程25(下).avi
http://dl.vmall.com/c0zlis6daw
ExtJs视频教程26(上).avi
http://dl.vmall.com/c0dkmrgyny
ExtJs视频教程26(下).avi
http://dl.vmall.com/c0ggz4rsjk
ExtJs视频教程27(上).avi
http://dl.vmall.com/c0oikptimx
ExtJs视频教程27(下).avi
http://dl.vmall.com/c0hf8mkvz8
ExtJs视频教程28(上).avi
http://dl.vmall.com/c0u1dtnapu
ExtJs视频教程28(下).avi
http://dl.vmall.com/c03aqkretd
ExtJs视频教程29(上).avi
http://dl.vmall.com/c0iba3xahp
ExtJs视频教程29(下).avi
http://dl.vmall.com/c0eksgrye9
ExtJs视频教程3(上).avi
http://dl.vmall.com/c0umiba9au
ExtJs视频教程3(下).avi
http://dl.vmall.com/c0ayfugdru
ExtJs视频教程30(上).avi
http://dl.vmall.com/c0b8eyl7tq
ExtJs视频教程30(下).avi
http://dl.vmall.com/c0wmn2dn4p
ExtJs视频教程4.avi
http://dl.vmall.com/c0aqzm9bdq
ExtJs视频教程5(上).avi
http://dl.vmall.com/c0phusez1v
ExtJs视频教程5(下).avi
http://dl.vmall.com/c0k8cbyyb0
ExtJs视频教程6(上).avi
http://dl.vmall.com/c0cakxbmae
ExtJs视频教程6(下).avi
http://dl.vmall.com/c096aiackr
ExtJs视频教程7(上).avi
http://dl.vmall.com/c0l2yl1m2l
ExtJs视频教程7(下).avi
http://dl.vmall.com/c05n9sqsp1
ExtJs视频教程8.avi
http://dl.vmall.com/c0x692rjm6
ExtJs视频教程9(上).avi
http://dl.vmall.com/c0mmjhyylb
ExtJs视频教程9(下).avi
http://dl.vmall.com/c0wkfdosff
C. spring mvc怎么和extjs4交互
注意点一:Extjs的store层
Ext.define('AM.store.Students', {
extend: 'Ext.data.Store',
model: 'AM.model.Student',
//ht/docs./ext-js/4-1/#!/example/restful/restful.html
autoLoad: true,//store.load();
autoSync: true,//需要同步
pageSize:3, //每页显示的记录行数
listeners: {
write: function(store, operation){
var record = operation.getRecords()[0],
name = Ext.String.capitalize(operation.action),
verb;
if (name == 'Destroy') {
record = operation.records[0];
verb = 'Destroyed';
} else {
verb = name + 'd';
}
console.log(Ext.String.format("{0} Student: {1}", verb, record.getId()));
},
exception: function(proxy, type, action, options, res){
Ext.Msg.show({
title: 'ERROR',
msg: res.message,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
});
}
}
});
注意点二:Extjs的model层
var myjson = Ext.create('Ext.data.writer.Json', {
encode: true,
writeAllFields: true
});
Ext.namespace("AM.model");
//服务器无需传输所有字段
Ext.define('AM.model.Student', {
extend: 'Ext.data.Model',
//http://archive.cnblogs.com/a/2571796/
statics: {//注意不是static
addRecord : function(store){
var fields = this.getFields();
store.each(function(record) {
fields[fields.length] = {
name: record.get('fieldKey'),
type: record.get('dataType')
};
});
}
},
fields: [
//需要与java注入类的各个字段类型相同,否则不能成功创建注入对象
{name: 'student_id',type:'int'},
{name: 'innoGroupId',type:'int'},
{name: 'username'},
{name: 'password'},
{name: 'name'},
{name: 'email'},
{name: 'unikey'},
{name: 'mobile'},
{name: 'phone'},
{name: 'type'},
{name: 'innoGroupAccepted', type: 'boolean', defaultValue: false},
{name: 'applyConfirmed', type: 'boolean', defaultValue: false},
{name: 'fileConfirmed',type: 'boolean', defaultValue: false},
{name: 'payConfirmed',type: 'boolean', defaultValue: false},
{name: 'examConfirmed', type: 'boolean', defaultValue: false},
{name: 'accepted',type: 'boolean', defaultValue: false},
//append
{name: 'namePy'},
{name: 'sex', type: 'boolean',},
{name: 'certificateType'},
{name: 'certificateId'},
{name: 'nativePlace'},
{name: 'birthdate'},
{name: 'birthPlace'},
{name: 'homePlace'},
{name: 'archivePlace'},
{name: 'rewardPunishment'},
{name: 'household'},
{name: 'college'},
{name: 'major'},
{name: 'ethnic'},
{name: 'graateTime'},
{name: 'bachelorId'},
{name: 'studyNumber'},
{name: 'political'},
{name: 'degree'},
{name: 'english',type:'int'},
{name: 'politics',type:'int'},
{name: 'math',type:'int'},
{name: 'cs',type:'int'},
{name: 'total',type:'int'},
{name: 'remark'},
],
idProperty: 'student_id',
proxy : {
type: 'rest',
url: 'student',
reader :
{
type : 'json',
root : 'data',
successProperty : 'success',
totalProperty: 'total'
},
writer :
{
type : 'json',
//encode: true,extjs-4中的Ext.data.writer.Writer没有该属性
writeAllFields: true
}
}
});
注意点二.五:Extjs的model层
var sm = Ext.create('Ext.selection.CheckboxModel');
Ext.define('AM.view.student.List' ,{
extend: 'Ext.grid.Panel',
alias : 'widget.studentList',
//title : 'All student',
store: 'Students',
selModel: sm,
dockedItems : [{
xtype : 'toolbar', dock : 'top',
items : [{
text : '添加',
itemId: 'addButton',
iconCls : 'add',
action: 'add'
}, '-', {
text : '删除',
itemId: 'removeButton',
iconCls : 'remove',
action: 'remove' ,
disabled : true
},
]
}, {
dock : 'bottom',
xtype : 'pagingtoolbar',
id : 'pt',
store : 'Students',//Ext.getStore('Students'), // 分页store与grid一致
displayInfo : true,
}],
initComponent: function() {
this.columns = [//需要将columns写出来
{header: '编号', dataIndex: 'student_id', width:35},
{header: '姓名', dataIndex: 'name', width:60,flex:1},
{header: '准考证号', dataIndex: 'unikey', width:80,flex:1},
{header: '考生类别', dataIndex: 'type', width:60,flex:1},
{header: '性别', dataIndex: 'sex', width:35},
{header: '毕业院校', dataIndex: 'college', width:120,flex:1},
{header: '专业', dataIndex: 'major', width:100,flex:1},
{header: '民族', dataIndex: 'ethnic', width:40},
{header: '毕业时间', dataIndex: 'graateTime', width:60,flex:1},
{header: '英语', dataIndex: 'english', width:35},
{header: '政治', dataIndex: 'politics', width:35},
{header: '数学', dataIndex: 'math', width:35},
{header: '综合', dataIndex: 'cs', width:35},
{header: '总分', dataIndex: 'total', width:50},
];
//CARE store必须要初始化
var store = Ext.getStore('init.AutoTables');
console.log(store);
console.log('this.columns.length = '+this.columns.length);
console.log(this.columns);
var columns = this.columns;//此处位引用赋值
var me = this;
//TODO 必须使得该函数运行结束才可执行后面的语句
store.load({
//scope: this,
callback: function(records, options, success){
if(success){
store.each(function(record) {
//console.log(columns.length);
columns.push({
header: record.get('header'),
dataIndex: record.get('dataIndex'),
width : record.get('width')
});
});
console.log('columns.length = '+columns.length);
console.log(columns);
me.columns = columns;
console.log('memem.length = '+ me.columns.length);
console.log(me.columns);
console.log(me);
//me.callParent(arguments);//Uncaught TypeError: Cannot read property 'superclass' of undefined
}
},
});
console.log('out initComponent 2150');
this.callParent(arguments);
}
});
注意点三:后台Spring MVC中Json数据处理
package com.enrol.util;
import java.security.MessageDigest;
import java.util.HashMap;
import java.util.Map;
public class DataUtil {
public static Map<String, Object> getMap(Object contact,int total) {
Map<String, Object> modelMap = new HashMap<String, Object>(3);
System.out.println("OK!!!!!");
modelMap.put("data", contact);
modelMap.put("success", true);
modelMap.put("total", total);
return modelMap;
}
public static Map<String, Object> getModelMapError(String msg) {
Map<String, Object> modelMap = new HashMap<String, Object>(2);
modelMap.put("message", msg);
modelMap.put("success", false);
return modelMap;
}
public static String MD5(String s) {
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
try {
byte[] strTemp = s.getBytes();
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte b = md[i];
str[k++] = hexDigits[b & 0xf];
}
return new String(str);
} catch (Exception e) {
return null;
}
}
}
注意点四:Spring MVC中 Controller层用到分页的方法:
@RequestMapping(method = RequestMethod.GET)
public @ResponseBody
Map<String, ? extends Object> view(int page,int start,int limit) throws Exception {
System.out.println("get");
System.out.println("-----------------------------------");
System.out.println("page=="+page);
System.out.println("start=="+start);
System.out.println("limit=="+limit);//pagesize
System.out.println("-----------------------------------");
page = (page-1)*limit;
HashMap<String,Integer> maps = new HashMap<String, Integer>();
maps.put("page", page);
maps.put("limit", limit);
try {
int total = studentMapper.getTotal();
List<HashMap<String, ?>> list = studentMapper.getStudents(maps);
System.out.println("length= " + list.size());
for (HashMap<String, ?> obj : list) {
System.out.println("map: " + obj);
}
return DataUtil.getMap(list,total);
} catch (Exception e) {
e.printStackTrace();
return DataUtil
.getModelMapError("Error retrieving students from database.");
}
}
D. EXTJS4怎么用我是新人,将example粘贴到WEBROOT下,无法使用。请问我需要哪些其他准备工作,想看演示
将几个必须的包放到webroot下面。如图
页面上引入这几个js
<linkrel="stylesheet"type="text/css"href="<%=basePath%>ext4/resources/css/ext-all.css">
<scripttype="text/javascript"src="<%=basePath%>ext4/bootstrap.js"></script>
<scripttype="text/javascript"src="<%=basePath%>ext4/ext-lang-zh_CN.js"></script>
应该就OK了
E. extjs4 画线图
除了它们共用的坐标外,另外的一个轴上确实不能像柱状图放到一个数组中那样方便了,必须在series中一个一个的绘制。
series:[
{
type:'line',
axis:'left',
xField:'months',
yField:['a']
},
{
type:'line',
axis:'left',
xField:'months',
yField:['b']
},
{
type:'line',
axis:'left',
xField:'months',
yField:['c']
}
]
F. extjs4以上引入js需要注意什么
1、在引入包的时候是顺序的; href="text/,比如国际化没有用;/
src="javascript"script>/ext/js/.js;/.js"
<text/js//>script
type="link rel="<%=path%>
<stylesheet"javascript"。
2、不然会有问题;<<
src="<.css"< type="script>text/css"bootstrap;text/.js;/script
type=".js"js/
src=">css/.js"ext-all;
3、最后加上自己的js;%=path%>>ExtJs4没有了之前的ext-base;ext/、
<script
type="/ext-all;ext/javascript"%=path%>
<!
;>ext/。取代的是bootstrap;<ext-lang-zh_CN;script>%=path%>/<
G. 本人extjs入门,现在正在学习用Extjs4,我想问一下extjs怎么接收解析json数据
JSON可以理解为JavaScript的对象序列化的字符串, 你看下JSON的内容, 会发现和代码中写的对象字面量基本一样, 所以使用eval方法即可将JSON转换为对象.
Ext仅仅是简单的封装eval方法, 以适应不同标准的JSON
源代码:
Ext.util.JSON.decode = function(json){
return eval('(' + json + ')');
};
你可以自己alert出来看
//示例
Ext.onReady(function() {
Ext.Ajax.request({
url: 'getmsg.action?user=1',
method: 'GET',
success: function(resp, options) {
//标准JSON字符串 '{"data": [{"msg":"abcd"}]}'
var jsonObj = Ext.util.JSON.decode(resp.responseText);
//显示模态提示框
Ext.Msg.alert('title', jsonObj.data[0].msg, function(btn){
//Ext的模态窗口仅仅是屏蔽操作, 并不阻塞线程, js也没有线程, 这点非常重要
//提示框的按钮事件回调
alert(btn); //后执行
});
alert(1); //先执行
}
//failure: function() {...} //可选的
});
});
Ext的ApiDoc做得非常好, 对学习有很大的帮助. 千万不要看一些所谓的中文版, 有很多机器翻译不说, 还有很多未校对的错误.
另: 学习ExtJS要掌握闭包的概念, 这个是js一个非常重要的特性, Ext使用该特性模拟了继承及封装, 在一定程度上实现了面向对象编程. 当然你也可以无视Ext的继承机制, 使用js本身的原型继承(prototype)
H. extjs4.0.7 环境配置怎么搭建 越详细越好 有加分
将整个ExtJs4.0拷入项目中,然后加载,
<link rel="stylesheet" type="text/css" href="extjs4/resources/css/ext-all.css"/> //样式文件
<script src="extjs4/ext-all-debug.js"></script> //主文件
<script src="extjs4/ext-lang-zh_CN.js"></script> //中文包