中文网站: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 简单入门的更多相关文章

  1. 用IntelliJ IDEA创建Gradle项目简单入门

    Gradle和Maven一样,是Java用得最多的构建工具之一,在Maven之前,解决jar包引用的问题真是令人抓狂,有了Maven后日子就好过起来了,而现在又有了Gradle,Maven有的功能它都 ...

  2. [原创]MYSQL的简单入门

    MYSQL简单入门: 查询库名称:show databases; information_schema mysql test 2:创建库 create database 库名 DEFAULT CHAR ...

  3. Okio 1.9简单入门

    Okio 1.9简单入门 Okio库是由square公司开发的,补充了java.io和java.nio的不足,更加方便,快速的访问.存储和处理你的数据.而OkHttp的底层也使用该库作为支持. 该库极 ...

  4. emacs最简单入门,只要10分钟

    macs最简单入门,只要10分钟  windwiny @2013    无聊的时候又看到鼓吹emacs的文章,以前也有几次想尝试,结果都是玩不到10分钟就退出删除了. 这次硬着头皮,打开几篇文章都看完 ...

  5. 【java开发系列】—— spring简单入门示例

    1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...

  6. Docker 简单入门

    Docker 简单入门 http://blog.csdn.net/samxx8/article/details/38946737

  7. Springmvc整合tiles框架简单入门示例(maven)

    Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积 ...

  8. git简单入门

    git简单入门 标签(空格分隔): git git是作为程序员必备的技能.在这里就不去介绍版本控制和git产生的历史了. 首先看看常用的git命令: git init git add git comm ...

  9. 程序员,一起玩转GitHub版本控制,超简单入门教程 干货2

    本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制.帮助大家摆脱命令行工具,简单快速的使用GitHub. 做全栈攻城狮-写代码也要读书,爱全栈,更爱生活. 更多原创教程请关注 ...

随机推荐

  1. CodeForces 702 A Maximum Increase (贪心,高效算法)

    题意:给定 n 个数,问你连续的最长的序列是几个. 析:从头扫一遍即可. 代码如下: #include <cstdio> #include <string> #include ...

  2. android 工具类之SharePreference

    /** * SharedPreferences的一个工具类,调用setParam就能保存String, Integer, Boolean, Float, Long类型的参数 * 同样调用getPara ...

  3. OC:属性的内部实现原理、dealloc内释放实例变量、便利构造器方法的实现原理、collection的内存管理

    代码: // // main.m #import <Foundation/Foundation.h> #import "Person.h" #import " ...

  4. IL学习资料

    读懂IL代码就这么简单 由浅入深CIL系列 .net IL 指令速查

  5. Notepad++配置Python运行环境

    转自:http://www.cnblogs.com/zhcncn/p/3969419.html Notepad++配置Python开发环境   1. 安装Python 1 下载 我选择了32位的2.7 ...

  6. Oracle中decode方法的作用

    DECODE(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) 该函数含义如下: IF 条件=值1 THEN    RETURN (翻译值1) ELSIF 条件=值2 THEN   ...

  7. Freescale OSBDM JM60仿真器

    OSBDM-JM60 - 9S08JM60 Based OSBDM — It includes interfaces and firmware applied to all the targets s ...

  8. C# 反射类型转换

    /// <summary> /// 泛型类型转换 /// </summary> /// <typeparam name="T">要转换的基础类型 ...

  9. Ubuntu下很给力的下载工具

    Windows下的下载工具--迅雷,之所下面载速度快,乃是它能搜索资源.为己所用,而不是只从原始地址这单一资源处下载. Ubuntu下也有类似的工具,那就是aira2. aira2是一个命令行下载工具 ...

  10. 剑指 offer set 4 矩形覆盖

    总结 1. 斐波那契数列的变形题, 但是稍有隐晦, 有点意思 2. 求解 f(3) 时, 最后一块矩形可以竖着放, 也可以两块矩形横着放, 分别对应于 f(2) 和 f(1) ------------ ...