标题可能有点长,什么叫“完整的基础DOM结构”,这里“基础”的意思是指这个结构不依赖具体数据,不依赖Datagrid的view属性,只要存在Datagrid实例就会存在这样的基础DOM结构;而“完整”的意思是指在冻结列,冻结行,标题,footer,分页这些功能块都存在时候的DOM结构。
要搞清楚Datagrid的工作原理,这个DOM结构必须要烂熟于胸的,我们直接来看这个“基础完整DOM结构”是什么样子的:
!-- datagrid的最外层容器,可以使用$(target).datagrid('getPanel')或者$.data(target,'datagrid').panel得到这个DOM对象,这个DOM上其实承载了panel组件--> <div class="panel datagrid"> <!-- datagrid的标题区域容器,对应于panel组件的header部分,可以使用$(target).datagrid('getPanel').panel('header')得到这个DOM对象--> <div class="panel-header"> <div class="panel-title"></div> <div class="panel-tool"></div> </div> <!-- datagrid的主体区域容器,对应于panel组件的body部分,可以使用$(target).datagrid('getPanel').panel('body')得到这个DOM对象--> <div class="datagrid-wrap panel-body"> <!--工具栏--> <div class="datagrid-toolbar"></div> <!-- datagrid视图部分的容器,这是datagrid组件DOM结构的核心,其基础视图结构跟datagrid的view属性无任何关系。--> <!-- 对应dc.view --> <div class="datagrid-view"> <!-- div.datagrid-view1负责展示冻结列部分(包含行号或者frozenColumns)的数据--> <!-- 对应dc.view1 --> <div class="datagrid-view1"> <!--列标题部分--> <div class="datagrid-header"> <!-- 对应dc.header1 --> <div class="datagrid-header-inner"> <!--样式里有htable关键字,h代表header的意思--> <table class="datagrid-htable"> <tbody> <tr class="datagrid-header-row"></tr> </tbody> </table> </div> </div> <!--列数据部分--> <div class="datagrid-body"> <!-- 对应dc.body1 --> <div class="datagrid-body-inner"> <!--frozenRows部分(有数据才会有这个table,故不属于基础DOM结构),固定行是1.3.2版本之后才加的功能,注意datagrid-btable-frozen关键样式,btable代码body table的意思--> <table class="datagrid-btable datagrid-btable-frozen"></table> <!--普通rows部分(有数据才会有这个table,故不属于基础DOM结构)--> <table class="datagird-btable"></table> </div> </div> <!--footer部分--> <div class="datagrid-footer"> <!-- 对应dc.footer1 --> <div class="datagrid-footer-inner"> <!--ftable代表footer table的意思--> <table class="datagrid-ftable"></table> </div> </div> </div> <!-- div.datagrid-view2负责展示非冻结列部分的数据,大家注意到冻结列和普通列视图是分开的,也就是说冻结列和普通列是在不同表格中展示的,这样会产生一个问题,那就是两个表格行高之间的同步问题。--> <!-- 对应dc.view2 --> <div class="datagrid-view2"> <!--列标题部分--> <div class="datagrid-header"> <!-- 对应dc.header2 --> <div class="datagrid-header-inner"> <table class="datagrid-htable"> <tbody> <tr class="datagrid-header-row"></tr> </tbody> </table> </div> </div> <!--列数据部分,注意这里并无datagrid-body-inner这个子元素,而冻结列对应的body却是有的,这个是细微区别--> <!-- 对应dc.body2 --> <div class="datagrid-body"> <!--frozenRows部分有数据才会有这个table,故不属于基础DOM结构,固定行是1.3.2版本之后才加的功能,--> <table class="datagrid-btable datagrid-btable-frozen"></table> <table class="datagrid-btable"></table> </div> <!--footer部分--> <div class="datagrid-footer"> <!-- 对应dc.footer2 --> <div class="datagrid-footer-inner"> <table class="datagrid-ftable"></table> </div> </div> </div> </div> <!--分页部分--> <div class="datagrid-pager pagination"></div> </div> </div>
对于这个DOM结构,我在html代码里面已经做了简单说明,这里提一下绑定于Datagrid宿主table上的对象的dc属性,这个dc属性存储了对DOM结构里不同部分的引用,获取dc属性的方法:
$.data(target,'datagrid').dc;
而dc属性跟DOM的对应关系,我也在html中做了详细注释,请大家自行查看,这些都是我们深入认识Datagrid组件的基础。
相关推荐
在IT行业中,EasyUI Datagrid是一款基于jQuery的前端数据展示组件,它提供了丰富的表格功能,如排序、分页、过滤等。在实际工作中,我们经常需要将这些展示的数据导出到Excel文件,以便进行进一步的分析或存储。下面...
jQuery EasyUI Datagrid 是一个基于 jQuery 和 EasyUI 框架的数据网格组件,它提供了丰富的数据展示和操作功能,常用于构建数据密集型的Web应用。这个教程将深入讲解其核心概念、用法以及常见应用。 一、jQuery ...
**jQueryEasyUI 1.1 完整源代码详解** jQueryEasyUI 是一款基于 jQuery 的前端框架,它为开发者提供了一系列轻量级、易于使用的组件,用于快速构建用户界面。这个1.1版本包含了完整的源代码,允许开发者深入理解其...
- **EasyUI 组件**: EasyUI 将jQuery的功能进一步扩展,提供了如`datagrid`(数据网格)、`panel`(面板)、`dialog`(对话框)等丰富的UI组件。 2. **组件的使用**: - **初始化组件**: 使用`$(selector)....
在IT领域,EasyUI Datagrid是一款基于jQuery的前端数据展示组件,它提供了丰富的表格功能,如排序、分页、过滤等。"EasyUI Datagrid 导出到Excel"这一主题涉及的是如何将EasyUI Datagrid中的数据显示在Excel表格中,...
在EasyUI中,jQuery被用来作为基础,为组件的创建和交互提供了便利。 1. **组件化设计**:EasyUI 的组件设计遵循模块化原则,每个组件都有独立的实现和配置选项,如`datagrid`用于展示数据表格,`dialog`用于弹出...
jQuery EasyUI 是一个基于 jQuery 的前端开发框架,它简化了网页界面的构建,提供了一...这个压缩包中的所有文件,包括 jQuery 库和 EasyUI 组件,都为开发者提供了一个完整的开发环境,使得快速上手和应用变得简单。
本教程“jQueryEasyUI从零开始学源码part1”旨在帮助初学者深入理解jQuery EasyUI的工作原理,通过源码分析来提升开发技能。 首先,我们需要了解jQuery EasyUI的基础概念。jQuery是一个轻量级的JavaScript库,简化...
这个文档可以帮助开发者理解 jQuery 的基础操作,如选择器、事件处理、DOM 操作等。 `jquery+easyui_api培训文档.doc` 是一份培训文档,可能包含了使用 jQuery EasyUI 进行开发的实践指导和示例代码,对于初学者来...
2. 创建 DOM 结构:在 HTML 中,为每个要使用的组件添加相应的标记,如 `<div class="datagrid">` 用于创建数据网格。 3. 初始化组件:通过 JavaScript 代码,对这些标记进行初始化,赋予它们 jQuery EasyUI 组件的...
- **jQuery基础**:EasyUI是建立在jQuery库之上的,因此理解jQuery的基本选择器、事件和方法是必不可少的。 - **组件化**:EasyUI将常见的UI元素封装为组件,如`datagrid`(数据网格)、`dialog`(对话框)和`form`...
5. **布局管理**:在实例演示中,会展示如何使用EasyUI的布局组件创建复杂的页面结构,如网格布局、边界布局、表格布局等,有效地组织和展示内容。 6. **事件处理**:EasyUI组件有丰富的事件系统,可以通过监听和...
jQuery EasyUI 是一个基于 jQuery 的前端框架,它提供了一系列易于使用的组件,帮助开发者快速构建用户界面。这个压缩包“jquery-easyui-1.5.5.6”包含了该框架的1.5.5.5版本,这是一份重要的更新,可能包含了一些...
- JQuery EasyUI是建立在JQuery基础之上的,JQuery是一个强大的JavaScript库,用于简化DOM操作、事件处理和动画制作。 - EasyUI提供了一套易于使用的UI组件,如表格、表单、对话框、菜单、树形结构、面板等,这些...
它包括窗口(window)、表格(datagrid)、面板(panel)、下拉框(combobox)、树形结构(tree)等多种组件,极大地提高了开发效率。EasyUI 的组件具有良好的兼容性和可配置性,可以根据项目需求进行定制。 ### 3....
1. **jQuery集成**:EasyUI是基于jQuery构建的,所以首先会导入jQuery库,然后在其基础上扩展各种UI组件。 2. **核心函数和API**:这是EasyUI的核心部分,包括数据处理、事件处理、DOM操作等基础功能。这些API允许...
jQuery 提供了简便的 DOM 操作、事件处理以及动画效果,而 EasyUI 在此基础上构建了更高级的组件。 jQuery EasyUI 的组件系统是其强大之处。例如,`datagrid` 是一个常见的表格组件,它可以轻松实现数据加载、排序...
"jquery-1.4.4.min.js"是jQuery库的核心文件,它是EasyUI的基础,负责处理DOM操作、事件处理和动画效果。EasyUI的大部分功能都是在jQuery的基础上实现的。 3. **EasyLoader** "easyloader.js"是jQuery EasyUI的...
jQuery EasyUI是一个基于jQuery的前端框架,它提供了一系列的组件,简化了网页界面的开发,使得开发者能够快速构建用户友好的交互式应用。这个API帮助文档涵盖了jQuery EasyUI的使用方法和功能,对于理解并熟练运用...
jQuery EasyUI 将这些基本功能进一步封装,提供了诸如表格(datagrid)、对话框(dialog)、下拉框(combobox)等组件,使得页面布局和交互变得更加简单。 1. **表格(datagrid)**:datagrid 是一个强大的数据展示...