extjs 简单入门
中文网站:http://extjs.org.cn/
英文网站:http://www.sencha.com/products/extjs/
1、简介
extJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架。
2、简单使用
需要这些包的支持:ext-all.css,ext-all.js,ext-lang-zh_CN.js
上代码:
if (!courseware) {
courseware = {
};
}
courseware.showSchemeSwf = function(swfFile) {
if (!swfFile) {
return;
}
//$("#player").show();
$('#documentViewer').FlexPaperViewer(//仿百度文库插件
{ config : {
jsDirectory : courseware.swfDirectory,
SWFFile :swfFile,
Scale : 0.6,
ZoomTransition : 'easeOut',
ZoomTime : 0.5,
ZoomInterval : 0.2,
FitPageOnLoad : true,
FitWidthOnLoad : false,
FullScreenAsMaxWindow : true,
ProgressiveLoading : false,
MinZoomSize : 0.2,
MaxZoomSize : 5,
SearchMatchAll : true,
InitViewMode : 'Portrait',
RenderingOrder : 'flash',
StartAtPage : '',
ViewModeToolsVisible : true,
ZoomToolsVisible : true,
NavToolsVisible : true,
CursorToolsVisible : true,
SearchToolsVisible : true,
WMode : 'window',
localeChain: 'zh_CN'
}}
);
};
courseware.colsePlayer = function() {
//$("#player").hide();
};
courseware.departmentID="";
var Courseware = Ext.define('Courseware', {
extend: 'Ext.data.Model',
fields: [
{name: 'coursewareId', type: 'string'},
{name: 'coursewareName', type: 'string'},
{name: 'uploadTime', type: 'string'},
{name: 'coursewarePath', type: 'string'},
{name: 'coursewareSwfPath', type: 'string'}
]
});
courseware.createItems =function (){//显示的菜单
var items = [];
if (training.user.role == '0') {//用户的权限,在JS中,从session中获得
items.push({
id : "btn-add",
iconCls: 'icon-add',
text: '上传课件',
handler: courseware.onAddClick
}, {
id : "btn-delete",
iconCls: 'icon-delete',
text: '删除课件',
disabled: true,
handler: courseware.onDeleteClick
});
}
items.push({
id : "btn-download",
iconCls: 'icon-download',
text: '下载课件',
disabled: true,
hidden:true,
handler: courseware.onDownloadClick
},{
id : "btn-view",
iconCls: 'icon-view',
text: '观看课件',
disabled: true,
handler: courseware.onViewClick
},"->",{
xtype:'combo',
id:'departments',
fieldLabel: '部门列表',
labelWidth:60,
editable:false,
store: CommonUtil.departmentStoreWithAll,
queryMode: 'local',
displayField: 'departmentName',
valueField: 'departmentId',
value:"",
listeners :{
change: function(view, selections) {
var departmentId = Ext.getCmp('departments').getValue();
courseware.departmentID=departmentId;
Ext.getCmp('coursewarePanel').getStore().getProxy().url='......?Id='+departmentId;
courseware.store.loadPage(1);
}
}
});
return items;
};
courseware.store = Ext.create('Ext.data.Store', {//从指定地址获得数据
storeId:'coursewareStore',
model:Courseware,
pageSize:10,
proxy: {
type: 'ajax',
url: 'courseware/getfiles',
params: {
departmentId:""
},
reader: {
type: 'json',
totalProperty: 'dataCnt',
root: 'data'
}
}
});
courseware.uploadfileWindow = Ext.create('Ext.window.Window', {//窗体
title: '上传课件',
height: 150,
width: 320,
closeAction:'hide',
items: {
xtype: 'form',
layout: 'form',
id: 'passwordForm',
defaultType: 'textfield',
height:100,
border:0,
bodyStyle: {
background: '#dfe8f6',
padding: '20px'
},
items: [{
xtype: 'filefield',
regex:/^.*?\.(pdf|ppt|doc)$/,
regexText:'文件格式有误,只能上传pdf|ppt|doc格式的文件',
name: 'filename',
fieldLabel: '请选择课件',
labelWidth: 80,
msgTarget: 'side',
allowBlank: false,
anchor: '100%',
buttonText: '选择课件'
}],
buttons: [{
text: '上传',
handler: function() {
var form = this.up('form').getForm();
if(form.isValid()){
form.submit({
url: courseware.fileuploadUrl+"?departmentId="+courseware.departmentID,
waitMsg: '正在上传课件,请稍等',
success: function(form, action,response) {
courseware.handleupload(form, action,response);
},
failure: function(form, action,response) {
courseware.handleupload(form, action,response);
}
});
}
}
}]
}
});
courseware.handleupload = function(form, action,response) {
if (action.result.status == 'OK') {
//courseware.uploadfileWindow.hide();
//Ext.Msg.alert('成功', '文件转码中,请稍后');
//Ext.getCmp('coursewarePanel').getStore().getProxy().url='...'+courseware.departmentID;
//courseware.store.loadPage(1);
} else {
//courseware.uploadfileWindow.hide();
//Ext.Msg.alert('失败', '上传失败,请检查网络,稍微再传!');
}
/**权益之计,这个问题需要解决*/
courseware.uploadfileWindow.hide();
Ext.getCmp('coursewarePanel').getStore().getProxy().url='....?id='+courseware.departmentID;
courseware.store.loadPage(1);
};
courseware.onAddClick = function() {
if(courseware.departmentID=="")
{
Ext.Msg.alert('警告', '请选择部门');
return;
}
courseware.uploadfileWindow.show();
};
courseware.onDownloadClick= function() {
var selects = courseware.coursewarePanel.getSelectionModel().getSelection();
if (selects.length == 0) {
CommonUtil.warn("请选择课件");
return false;
}
var path = selects[0].data.coursewarePath;
window.location.assign('courseware/downloadfiles?filepath='+path);
};
courseware.onDeleteClick = function() {
var selects = courseware.coursewarePanel.getSelectionModel().getSelection();
if (selects.length == 0) {
CommonUtil.warn("请选择课件");
return false;
}
CommonUtil.confirm("确认删除选中的课件?", function(){
var coursewareId = selects[0].data.coursewareId;
Ext.Ajax.request({
url : 'courseware/filedelete?coursewareId=' + coursewareId,
success : function(response) {
var obj = Ext.decode(response.responseText);
if (obj.status == "OK") {
Ext.getCmp('coursewarePanel').getStore().getProxy().url='......Id='+courseware.departmentID;
courseware.store.loadPage(1);
} else {
Ext.Msg.alert("错误", "网络错误,请稍后再试");
}
}
});
});
};
courseware.onViewClick =function(){
var selects = courseware.coursewarePanel.getSelectionModel().getSelection();
if (selects.length == 0) {
CommonUtil.warn("请选择课件");
return false;
}
var path = selects[0].data.coursewareSwfPath;
window.open('.....?path='+path+'&name='+selects[0].data.coursewareName);
};
Ext.onReady(function() {
courseware.coursewarePanel = Ext.create('Ext.grid.Panel', {
id:'coursewarePanel',
renderTo: "departmentCoursewares",
store: courseware.store,
width: 526,
height: 400,
title: '课件列表',
selModel : Ext.create('Ext.selection.CheckboxModel', {mode:'single',allowDeselect:true}),
selType: 'rowmodel',
dockedItems: [{
xtype: 'toolbar',
items: courseware.createItems()
},
{
xtype: 'pagingtoolbar',
store: courseware.store, // same store GridPanel is using
dock: 'bottom',
displayInfo: true
}],
columns: [{
text: '课件ID',
width: 100,
sortable: false,
hidden: true,
dataIndex: 'coursewareId'
},{
text: '课件路径',
width: 100,
sortable: false,
hidden: true,
dataIndex: 'coursewarePath'
},{
text: '课件名',
width: training.user.role=='0'?300:500,
dataIndex: 'coursewareName',
hidden: false,
editor: 'textfield'
},{
text: '上传时间',
width: 200,
dataIndex: 'uploadTime',
hidden: training.user.role=='0'?false:true,
editor: 'textfield'
}],
listeners : {
selectionchange : function( curr, selected, eOpts ) {
if (selected.length != 0) {
Ext.getCmp("btn-download").enable();
Ext.getCmp("btn-view").enable();
if (training.user.role == '0')
Ext.getCmp("btn-delete").enable();
} else {
Ext.getCmp("btn-download").disable();
Ext.getCmp("btn-view").disable();
if (training.user.role == '0')
Ext.getCmp("btn-delete").disable();
}
}
}
});
CommonUtil.departmentStoreWithAll.load();
Ext.getCmp('coursewarePanel').getStore().getProxy().url='...?Id='+'';
courseware.store.reload();
});
extjs 简单入门的更多相关文章
- 用IntelliJ IDEA创建Gradle项目简单入门
Gradle和Maven一样,是Java用得最多的构建工具之一,在Maven之前,解决jar包引用的问题真是令人抓狂,有了Maven后日子就好过起来了,而现在又有了Gradle,Maven有的功能它都 ...
- [原创]MYSQL的简单入门
MYSQL简单入门: 查询库名称:show databases; information_schema mysql test 2:创建库 create database 库名 DEFAULT CHAR ...
- Okio 1.9简单入门
Okio 1.9简单入门 Okio库是由square公司开发的,补充了java.io和java.nio的不足,更加方便,快速的访问.存储和处理你的数据.而OkHttp的底层也使用该库作为支持. 该库极 ...
- emacs最简单入门,只要10分钟
macs最简单入门,只要10分钟 windwiny @2013 无聊的时候又看到鼓吹emacs的文章,以前也有几次想尝试,结果都是玩不到10分钟就退出删除了. 这次硬着头皮,打开几篇文章都看完 ...
- 【java开发系列】—— spring简单入门示例
1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...
- Docker 简单入门
Docker 简单入门 http://blog.csdn.net/samxx8/article/details/38946737
- Springmvc整合tiles框架简单入门示例(maven)
Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积 ...
- git简单入门
git简单入门 标签(空格分隔): git git是作为程序员必备的技能.在这里就不去介绍版本控制和git产生的历史了. 首先看看常用的git命令: git init git add git comm ...
- 程序员,一起玩转GitHub版本控制,超简单入门教程 干货2
本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制.帮助大家摆脱命令行工具,简单快速的使用GitHub. 做全栈攻城狮-写代码也要读书,爱全栈,更爱生活. 更多原创教程请关注 ...
随机推荐
- POJ2155Matrix(二维线段树)
链接http://poj.org/problem?id=2155 题目操作就是说,每次操作可以是编辑某个矩形区域,这个区域的0改为1,1改为0,每次查询只查询某一个点的值是0还是1. 方法:二维线段树 ...
- Android 通过ViewFlipper实现广告轮播功能并可以通过手势滑动进行广告切换
为了实现广告轮播功能,在网上找了很多方法,有的效果很好,但是代码太麻烦,并且大多是用的viewpager,总之不是很满意. 于是看了一下sdk有个控件是ViewFlipper,使用比较方便,于是尝试了 ...
- C++中使用接口
面向对象的语言诸如JAVA提供了Interface来实现接口,但C++却没有这样一个东西,尽管C++ 通过纯虚基类实现接口,譬如COM的C++实现就是通过纯虚基类实现的(当然MFC的COM实现用了嵌套 ...
- iOS Ping++前端集成支付
直接上代码 /* 获取订单charge 1.buyerId 买家ID 2.sellerId 卖家ID 3.liveId 直播间ID 4.goodCount 商品数量 5.status ...
- Objc基础学习记录5
NSMutableString类继承的NSString类. NSMutableString是动态的字符串. 1.appendingString 方式: 向字符串尾部添加一个字符串. 2.appendi ...
- 妙用缓存调用链实现JS方法的重载
来自于我的博客http://sweets.cf/,转载注明出处 1.什么是方法重载 方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数. 简而言之就是:方法重载就 ...
- jquery获取表单的值
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 快速找到跟踪其他session产生的trc文件
掌握该技术最根本的是需要搞清楚session跟踪文件存放的路径和生成跟踪文件的命名规则,不然,在已经存在成全上万trc文件的生产环境中,要想快速正确的找到跟踪其他SESSION产生的trc文件就如大海 ...
- LVM管理及扩容(转)
LVM磁盘管理 一、LVM简介... 1 二、 LVM基本术语... 2 三、 安装LVM... 3 四、 创建和管理LVM... 4 2、 创建PV.. 6 3、 创建VG.. 7 4、 创建LV. ...
- NGINX源代码剖析 之 CPU绑定(CPU亲和性)
作者:邹祁峰 邮箱:Qifeng.zou.job@gmail.com 博客:http://blog.csdn.net/qifengzou 日期:2014.06.12 18:44 转载请注明来自&quo ...