extjs桌面的js文件
根据提供的文件信息,我们可以深入探讨基于ExtJS框架的桌面式应用程序设计与实现的关键知识点。ExtJS是一种用于构建现代化Web应用程序的JavaScript库,它提供了一系列丰富的用户界面组件,并且支持多种数据处理方式,使得开发者能够轻松地创建出高性能、高交互性的前端应用。 ### 一、ExtJS桌面式应用概述 在ExtJS中开发桌面式应用,主要是通过模拟桌面环境来组织不同的功能模块或应用程序。这种方式可以提供更加直观和易用的用户体验。根据题目中的描述,“extjs桌面的js文件”主要包含了桌面应用的整体框架及外部键的调用逻辑。 ### 二、整体框架设计 #### 1. 模块定义 文件中定义了一个名为`MyDesktop.SearchPositionWindow`的模块,该模块继承自`Ext.app.Module`。这表明该模块是ExtJS应用程序的一个组成部分,可以通过其`id`属性进行唯一标识。模块初始化时,定义了一个启动器(`launcher`),该启动器包含了一些基础属性,如文本显示、图标类名以及一个用于创建窗口的方法句柄。 #### 2. 窗口创建 `createWindow`方法中定义了窗口的创建逻辑。首先定义了一个名为`EditPositionFields`的数据模型,该模型包含了多个字段的信息,如部门ID、名称等。接着创建了一个名为`EditPositionStore`的数据存储对象,该对象通过HTTP代理访问服务器端的数据接口,并使用JSON读取器解析返回的数据。 #### 3. 数据加载 `EditPositionStore.load()`方法用于加载服务器返回的数据,这些数据将用于填充窗口中的表格或其他UI组件。 ### 三、数据模型与存储 #### 1. 数据模型 在ExtJS中,数据模型通常用于定义数据记录的结构,包括字段名称、类型等信息。例如,`PositionType`数据模型定义了岗位ID、部门ID以及岗位名称等字段及其类型。 #### 2. 数据存储 数据存储(`Store`)是ExtJS中用于管理数据的核心对象之一。它可以与服务器进行通信,获取并保存数据。文件中创建了两个`Store`实例,分别用于获取部门信息和岗位信息。这两个`Store`都通过HTTP代理连接到服务器端的数据接口,并使用特定的JSON读取器解析数据。 ### 四、表格配置 #### 1. 选择模式 通过`CheckboxSelectionModel`定义了表格的选择模式,允许用户选择一个或多个表格行。 #### 2. 列模型 列模型(`ColumnModel`)用于定义表格的列布局,包括每一列的标题、数据索引等属性。在文件中定义了一个包含两列的列模型:第一列为选择框,第二列为岗位ID。 #### 3. 自定义渲染 对于部门ID列,定义了一个自定义的渲染函数。该函数根据部门ID查询部门名称,并以加粗的蓝色字体显示出来。 ### 五、其他细节 #### 1. AJAX设置 为了确保HTTP请求正确发送,设置了默认的POST头信息,包括字符集编码为GB2312。 #### 2. 分页加载 还定义了分页加载参数,通过设置`params`对象控制初始加载的数据量。 通过以上分析可以看出,这个“extjs桌面的js文件”不仅包含了完整的桌面式应用框架,而且还实现了数据加载、表格展示等功能。这对于理解和实践ExtJS开发非常有帮助。
MyDesktop.SearchPositionWindow = Ext.extend(Ext.app.Module, {
id: 'searchpositionman-win',
init: function () {
this.launcher = {
text: 'searchpositionman Window',
iconCls: 'icon-grid',
handler: this.createWindow,
scope: this
}
},
createWindow: function () {
var EditPositionFields = Ext.data.Record.create([
{ name: 'departmentId', mapping: 'departmentId' }, { name: 'departmentName', mapping: 'departmentName' }, { name: 'departmentTel', mapping: 'departmentTel' }, { name: 'departmentCharger', mapping: 'departmentCharger' }, { name: 'departmentSuperior', mapping: 'departmentSuperior' },
]);
var EditPositionStore = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: '../../Data/Department/GetDepartment.aspx'
}),
reader: new Ext.data.JsonReader({
root: 'data',
id: 'departmentId'
},
EditPositionFields
)
EditPositionStore.load();
//分页每页显示数量
var pageSize = 8;
//指定列参数
var fields = ["positionId", "departmentId", "positionName"];
var PositionType = Ext.data.Record.create([
{ name: "positionId", type: "int" },
{ name: "departmentId", type: "int" },
{ name: "positionName", type: "string" }
]);
var reader = new Ext.data.JsonReader(
{
// fields: fields,
root: "data",
totalProperty: "totalCount"
}, PositionType);
Positionstore = new Ext.data.Store({
proxy: new Ext.data.HttpProxy(
{
url: "../../Data/Position/ManagePosition.aspx",
method: "POST"
}),
reader: reader
});
Ext.lib.Ajax.defaultPostHeader += '; charset=gb2312'
剩余16页未读,继续阅读
- 十里飞刀2013-03-31这个文件不是很好
- daolihanyang2014-06-09有参考的价值
- 罗磐2015-11-01非常有用谢谢
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助