获取extjs 选择后的表头_项目开发总结1-表头字段排序

fa7e280919d1738cfc1eccc90f82a4f9.png

目的:实现客户自定义表头字段设置

6f368ef778c5b444a0cf41e256c79631.png

客户可以根据自己习惯或需要来自定义显示所需表头字段

实现流程:
1.程序入口,创建排序按钮,UI逻辑为,鼠标移入变大,点击top下移出现按下的视觉效果同时变红。鼠标弹起时触发弹窗事件。
2.排版内容默认原无排序功能时的字段数,隐藏字段不显示
3.提供全选功能,点击之间全选和取消全选显示和功能切换,其中,单选按钮使用图标隐藏单选按钮形式,此处注意label的for属性,达到点击图片从而相当于点击单选按钮的效果。
4.先选择的字段顺序排在前列:使用数组push储存字段(后台保证存取),每次点击push一个元素,若为取消则splice一个元素,以此保证数组存取顺序。取数组的时候循环赋值数组cloumns即可。
5.在设置表头字段的时候,默认选择当前表头中的字段,并且把字段按顺序默认于排序字段前面。点击全选/取消全选清除此顺序。也就是说,点击全选和挨个点击至全部项他们的顺序并不相同。

程序BUG:在程序新进入页面的时候,会出现闪烁情况。
原因:进入列表设置数据之后直接调用jQueryEasyui列表组件出现UI载入效果,而在用 户自定义之后需要在列表加载之前判断,这个接口时间在数百毫秒的空档期,因此出现的闪烁
解决方案:a.UI遮挡,视觉效果,显示加载中...或者用户表头加载中字样等...;缺点:此方面的性能仍然慢,用户体验不好。
b.在加载表头接口的时候异步加载获取列表数据接口。这方面的性能问题能得到短暂提升。缺点,由于判断表头字段的接口时间小于获取列表数据的接口,因此,闪烁的时间有可能增加。
c.---
工作心得:1.在功能未完成的时候不要放到公共操作上去。
2.遇事需要说的清楚,不是自己的问题老是被人认为出现在自身的感觉---后台未更新至22,前端显示不出数据来,领导只看结果20,看到的却是前端问题。
做事还需圆满。

知识要点:javascript数组方法:splice(index,num);改变原数组返回当前剪切元素
slice(index,num);同splice( ),不改变原数组
es6函数:new Promise(function(resolve,reject){}).then(function(){});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ExtJS4 中,可以使用 Ext.grid.header.Container 和 Ext.grid.column.Column 类来实现多层表头。具体步骤如下: 1. 创建一个 Ext.grid.Panel 实例,并定义表格列的配置项。 2. 使用 Ext.grid.header.Container 类创建表头容器,设置容器的布局和样式。 3. 使用 Ext.grid.column.Column 类创建表头列,设置列的文字、宽度、数据域等属性。 4. 将表头列添加到表头容器中,并设置表头列的嵌套关系,即将子表头列添加到父表头列的子项中。 5. 将表头容器设置为表格的顶部工具栏,通过表格的 reconfigure 方法重新加载数据。 示例代码如下: ``` var grid = Ext.create('Ext.grid.Panel', { columns: [ { text: 'Group 1', columns: [ { text: 'Name', dataIndex: 'name', width: 100 }, { text: 'Age', dataIndex: 'age', width: 50 } ] }, { text: 'Group 2', columns: [ { text: 'City', dataIndex: 'city', width: 100 }, { text: 'Country', dataIndex: 'country', width: 100 } ] } ], store: store, tbar: { xtype: 'headercontainer', items: [ { xtype: 'gridcolumn', text: 'Group 1', columns: [ { text: 'Name', dataIndex: 'name', width: 100 }, { text: 'Age', dataIndex: 'age', width: 50 } ] }, { xtype: 'gridcolumn', text: 'Group 2', columns: [ { text: 'City', dataIndex: 'city', width: 100 }, { text: 'Country', dataIndex: 'country', width: 100 } ] } ] }, height: 200, width: 400, renderTo: Ext.getBody() }); ``` 其中,store 是数据源,可以使用 Ext.data.Store 类创建。在这个示例中,表头容器使用了 Ext.grid.header.Container 类,并且设置了 xtype 为 'headercontainer',表头列使用了 Ext.grid.column.Column 类,并且设置了 xtype 为 'gridcolumn'。表头列的嵌套关系通过 columns 属性实现。最后,表头容器作为表格的顶部工具栏,通过 tbar 属性设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值