中文网站: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. PowerDesigner 表视图修改

    PowerDesigner中Table视图同时显示Code和Name,像下图这样的效果: 实现方法:Tools-Display Preference 转自:http://www.shaoqun.com ...

  2. android 工具类之SharePreference

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

  3. 一个模拟"显示桌面.scf"程序的JS小函数

    有时候我们或许有这样的一个需求,用JS模拟这样一个动作,同时按下组合快捷键:Windows旗帜键+D键,下面这个函数就可以帮到我们了. function f_ToggleDesktop() { var ...

  4. EXTJS项目实战经验总结一:日期组件的change事件:

    1  依据选择的日期,加载相应的列表数据,如图:   开发说明    1 开发思路: 在日期值变化的事件中获得选择后的日期值,传给后台,然后从后台加载相应的数据 2 问题:在查看extjs2.2 的a ...

  5. android如何实现开机自动启动Service或app

    第一步:首先创建一个广播接收者,重构其抽象方法 onReceive(Context context, Intent intent),在其中启动你想要启动的Service或app. import and ...

  6. 工作一直没有进步怎么办?试试PDCA法则吧!

    许多人在工作或者学习的时候,总是会发现自己过了一段时间以后,全然没有不论什么进步.或者进步很之少. 而对于每个渴望让自己变得更好的人来说.是一件很令人苦恼的事情,今天我们就来谈一下工作和学习上,可实现 ...

  7. PCA和白化练习之处理图像

    第一步:下载pca_exercise.zip,里面包含有图像数据144*10000,每一列代表一幅12*12的图像块,首先随见展示200幅: 第二步:0均值处理,确保数据均值为0或者接近0 第三步:执 ...

  8. Swift学习笔记八

    函数 Swift的函数语法非常独特,也提供了很高的灵活性和可读性.它可以充分表达从简单的无参数C风格函数到复杂的拥有局部变量和外部变量的OC风格的方法.参数可以有默认值,方便函数的调用.Swift中的 ...

  9. ANativeWindow是个什么东西

    公司经常组织一些培训,培训的都是些奇技淫巧.什么设计模式啦,开发策略啦,git啦,repo啦,另外就是培训一些开发流程的东东,例如CMMI啦.可是,却忘记了,程序员终究要归结到三个问题上: 1.解决什 ...

  10. TP复习8

    ## ThinkPHP 3.1.2 视图#讲师:赵桐正微博:http://weibo.com/zhaotongzheng 本节课大纲:一.模板的使用 (重点) a.规则 模板文件夹下[TPL]/[分组 ...