- 浏览: 238275 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
月度银墙:
wangxiang243 写道不错 !但是ext4中六月和十二 ...
ext2,3,和4 版本 只显示年月的日期插件 -
38123978:
你好,我最近在看cassandra的性能,我想问一下5000万 ...
Cassandra学习笔记3 -
zhaojinmeng:
您好楼主,extjs5要怎么扩展啊?求指导
ext2,3,和4 版本 只显示年月的日期插件 -
love_wting:
为什么下拉框的表格样式显示了,数据访问json也从数据库中取到 ...
Extjs 下拉grid -
laungcisin:
yangxiutian 写道另外Ext4.2.1还故意把x-m ...
ext2,3,和4 版本 只显示年月的日期插件
<script> var meta = [ {header:'编号',dataIndex:'id', name: 'id'}, {header:'名称',dataIndex:'name', name: 'name'}, {header:'描述',dataIndex:'descn', name: 'descn'}, {header:'日期',dataIndex:'date', name: 'date', type: 'date', dateFormat: 'Y-m-dTH:i:s', renderer: Ext.util.Format.dateRenderer('Y-m-d')} ]; var data = [ ['1','name1','descn1','1970-01-15T02:58:04'], ['2','name2','descn2','1970-01-15T02:58:04'], ['3','name3','descn3','1970-01-15T02:58:04'], ['4','name4','descn4','1970-01-15T02:58:04'], ['5','name5','descn5','1970-01-15T02:58:04'] ]; var grid = new Ext.grid.GridPanel({ height: 380, width: 450, renderTo: Ext.getBody(), enableDragDrop: true, title: '通过拖拽Grid改变行的顺序', frame: true, enableDrag: true, store: new Ext.data.Store({ autoLoad: true, proxy: new Ext.data.MemoryProxy(data), reader: new Ext.data.ArrayReader({}, meta) }), columns: meta, viewConfig: { columnsText: '显示的列', scrollOffset: 30, sortAscText: '升序', sortDescText: '升序', forceFit: true }, stripeRows: true, autoExpandColumn: 1, tbar: [{ text: '上移', iconCls: 'up', scope: this, handler: function(){ buttonMove(-1); } }, { text: '下移', iconCls: 'down', scope: this, handler: function(){ buttonMove(1); } }, '-', { text: '保存', iconCls: 'save', scope: this, handler: function(){ var ds = grid.getStore(); var sortIndex = []; for (var i = 0; i < ds.getCount(); i++) { sortIndex.push(ds.data.items[i].id); } Ext.fly('op').dom.value += '------------\n' + sortIndex + '\n'; Ext.Ajax.request({ url: 'gridDD_sort.ashx?act=save', params: { sortIndex: sortIndex }, success: function(response, op){ var msg = response.responseText; var obj = Ext.decode(msg); if (obj) { msg = obj.success?"新的行顺序已保存!":obj.data; } Ext.Msg.alert('信息', msg); }, failure: function(response, op){ Ext.Msg.alert('信息', response.responseText); } }); } }] }); function buttonMove(toward){ var sm = grid.getSelectionModel(); var data = sm.getSelections(); if (sm.hasSelection()) { //获取选择行第1行 var rec = sm.getSelected(); var ds = grid.getStore(); //默认的插入行 var rowIndex = ds.indexOfId(rec.id) + toward; //判断插入是否已选择,如果已选择,重新获取插入行 var ri = []; //插入行的行号数组 for (var i = 1; i < data.length; i++) { var index = ds.indexOfId(data[i].id) ri.push(index); } //对插入行数组进行排序,下移顺序排序,上移反序排序 if (toward == 1) { ri.sort(function(x, y){ if (parseInt(x) > parseInt(y)) return 1 else return -1 }) } else { ri.sort(function(x, y){ if (parseInt(x) > parseInt(y)) return -1 else return 1 }) } //如果插入行是选择行,则插入行前移或后移 for (var i = 0; i < ri.length; i++) { if (rowIndex == ri[i]) rowIndex += toward; } //判断插入行是否已在顶部或底部,不是则执行移动操作 if (rowIndex < 0) { Ext.Msg.alert('信息', '记录已在顶部'); } else if (rowIndex >= ds.getCount()) { Ext.Msg.alert('信息', '记录已在底部'); } else { move(rowIndex, data); } } else { Ext.Msg.alert('信息', '请选择记录'); } } function move(rindex, data){ var ds = grid.getStore(), rdata = ds.getAt(rindex); // 获取插入行的记录 var toward = 0; // 默认是上移操作 var index = ds.indexOfId(data[0].id); if (rindex > index){ toward = 1 // 如果是下移,修改方向值 } // 移除选择行 for (i = 0; i < data.length; i++) { ds.remove(ds.getById(data[i].id)); } // 根据id获取插入行的新位置并根据移动操作计算出插入位置 rindex = ds.indexOfId(rdata.id) + toward; // 从插入位置依次插入选择行 for (i = 0; i < data.length; i++) { ds.insert(rindex, data[i]); rindex++; } var sm = grid.getSelectionModel(); if (sm)sm.selectRecords(data);// 重新选择选择行 } new Ext.dd.DropTarget(grid.getEl(), { ddGroup: grid.ddGroup || 'GridDD', grid: grid, gridDropTarget: this, notifyDrop: function(dd, e, data){ var t = e.getTarget();// 获取选择行 var rindex = this.grid.view.findRowIndex(t); if (rindex === false) return false; var ds = this.grid.getStore(); var rdata = ds.getAt(rindex); // 判断插入行是否选择行,如果是不允许插入 for (i = 0; i < data.selections.length; i++) { var rowIndex = ds.indexOfId(data.selections[i].id); if (rindex == rowIndex) rindex = false; } move(rindex, data.selections) return true; }, notifyOver: function(dd, e, data){ var t = e.getTarget(); var rindex = this.grid.view.findRowIndex(t); var ds = this.grid.getStore(); for (i = 0; i < data.selections.length; i++) { var rowIndex = ds.indexOfId(data.selections[i].id); if (rindex == rowIndex) rindex = false; } return (rindex === false) ? this.dropNotAllowed : this.dropAllowed; } }); </script>
发表评论
-
js原型分析研究
2012-07-23 22:44 1482原型是个很微妙的东西,很多人不是很理解,理解了原型对于 ... -
Ext4.1.0 API中文版V0.4 Beta(持续更新)
2012-07-17 18:40 1075Ext4.1.0 API中文版V0.4 Beta html ... -
记录回答别人的Ext4问题
2012-07-10 13:23 26811:Ext4版本 双击Tab页面页签关闭 来自问题:ht ... -
Extjs4 时分秒日期插件
2012-05-11 13:05 12397插件1: 初始界面 弹出界面 插件代码 见附件 ... -
Ext3 日期范围插件
2012-04-03 17:32 2166先上 效果图有图有真相嘛 使用例子: ... -
Extjs2分页树 带查询功能
2012-03-29 11:37 4220先上效果图: 插件代码见附件 使 ... -
ext2 日期范围控件(2个控件)
2012-03-25 17:39 3064控件1 介绍: 首先加入 Ext.apply( ... -
ext2 grid 封装 (包含增删改查 导入导出等操作)
2012-02-27 14:32 5053最近项目又用到ext 比较 ... -
tree拖拽
2011-09-04 22:09 2468当时遇到如下问题: 拖拽A tree 的a节点到B tree ... -
ExtJS Web应用程序开发指南(第2版)(针对Ext JS 4.0更新)源代码
2011-08-11 14:56 1102ExtJS Web应用程序开发指南(第2版)(针对Ext JS ... -
使用注解和反射构造ext的grid需要的列模型
2010-09-18 12:03 1718注解类: package xzd; import ... -
ExtJs Grid分页时序号自增的实现
2010-08-23 16:28 3086首先看到网上都是类似 http://www.blogjava. ... -
extjs 自己的小小总结
2010-08-13 21:15 3337总结自己的代码 可能以后会用到 记录一下 方便以后查阅 1 ... -
eclipse 中怎样来集成 JBOSS
2010-08-09 08:46 0eclipse 中怎样来集成 JBOSS -
ext2,3,和4 版本 只显示年月的日期插件
2010-08-03 20:23 15765Ext技术交流群:164648099 1:ext3版本 ... -
关于Extjs3.0中的TreeGrid (Ext.ux.maximgb.tg.EditorGridPanel)(转)
2010-08-01 21:38 4402转:(http://www.liyonghome.cn/ind ... -
ext grid 单元格提示 出现图片
2010-07-31 00:03 2711代码简单 只是记录一下 <html> ... -
ext tree相关知识
2010-07-30 23:53 2649ext tree 动态修改各个节点名称icon小图标 &qu ... -
ext 后台查数据库数据拼装tree数据
2010-07-26 22:21 2513来自:Extjs交流群(164648099) 说明: ... -
ext grid刷新后 滚动条位置不变
2010-07-19 21:11 3032Ext.override(Ext.grid.GridView, ...
相关推荐
1. **事件监听**:在用户对portal或grid进行操作(如拖动模块、改变列顺序、隐藏/显示列)时,需要监听这些事件并记录用户的选择。 2. **数据序列化**:将用户的设置(如位置坐标、列顺序、显示状态)转换为可存储的...
1. **拖动功能**:SimpleGrid允许用户直接通过鼠标拖放单元格或行来改变表格中的数据顺序。这种直观的交互方式使得数据管理变得更加便捷,尤其适用于需要频繁调整数据顺序的场景。 2. **排序功能**:在SimpleGrid中...
在Android开发中,"仿Zaker拖动grid"是一个常见的需求,主要涉及到的是自定义网格视图(GridView)以及手势识别技术,目的是实现类似Zaker新闻应用中的可拖动、可翻页的效果。Zaker是一款知名的资讯阅读应用,其用户...
标题“拖动div的四个拐角改变其大小”所描述的就是这样一个功能,允许用户通过拖动div的四个角来动态调整div的宽度和高度。 实现这个功能通常会涉及到JavaScript库,例如jQuery。jQuery是一个广泛使用的JavaScript...
在JavaScript编程中,拖动表格行和列的功能可以极大地提升用户交互体验,使得数据操作更加直观和便捷。本文将深入探讨如何实现这个功能,并提供一些关键知识点。 首先,我们需要了解HTML表格的基本结构,即`<table>...
此外,它的排序、过滤和分页功能让数据管理更为便捷,用户可以通过简单的拖拽或菜单操作来改变数据的展示顺序和范围。 在MFC应用中,UltimateGrid能够无缝集成,提供了丰富的API接口和消息映射机制,方便开发者扩展...
通过集成jQuery UI库中的draggable和droppable组件,用户可以直接通过鼠标拖拽来改变列的顺序,这种直观的操作方式极大地提升了用户的交互体验。实现这一功能的关键在于设置合适的事件监听器,捕获拖放动作,并更新...
3. **列顺序的改变**:用户可以通过拖拽列头到新的位置来改变列的顺序。这依赖于`column.move`事件,当列的位置发生变化时,该事件会携带新旧位置的信息,我们可以通过监听这个事件来记录列的新顺序。 4. **记录...
拖拽排序是一种用户交互设计,允许用户通过鼠标拖动来改变元素的顺序。这种功能在列表、菜单和表格中尤为常见,提供了直观和便捷的操作体验。在JavaScript中,我们可以监听鼠标事件来实现这一功能。 二、jQuery实现...
在拖动过程中,我们不仅需要改变界面中的视图位置,还需要相应地调整数据源中的数据顺序。可以使用 `swapItems` 函数来交换数据集中的元素,确保视图和数据的一致性。 4. **动画效果**: 为了提高用户体验,我们...
这个系统允许用户通过直观地拖拽图片来改变它们在页面上的位置,从而实现自定义的图片排列顺序。下面我们将详细探讨涉及的关键知识点: 1. **事件监听**: - 在JavaScript中,我们需要监听`mousedown`(鼠标按下)...
用户可以通过拖放操作改变元素的顺序,实现这一功能的关键在于跟踪拖放过程中的数据交换,并更新后台的数据源(如数据库或数组)。同时,视图层也需要同步更新以反映这些变化。 4. **可删除功能(Deletable)**: ...
在IT领域,时间轴是一种常见的视觉工具,用于呈现和组织按照时间顺序发生的事件或过程。在Web开发中,实现拖拽功能的时间轴可以提供用户友好的交互体验,让用户能够自由地移动时间点或区间,以查看不同的时间段。...
- **拖放功能**:利用 jQuery UI 的拖放API,用户可以直观地通过拖拽来改变小部件的位置。 - **响应式设计**:gridstack.js 自动适应不同屏幕尺寸,确保在各种设备上保持良好的视觉效果。 2. **主要功能**: - *...
6. **拖放列**:用户可以自由调整列宽,甚至可以拖动列来改变其顺序。 7. **自定义插件和格式器**:SlickGrid允许开发者创建自定义的插件和单元格格式器,以满足特定的需求。 8. **事件驱动**:提供了丰富的事件API...
Flexbox适用于一维布局,如行或列,适合处理模块化的容器和子元素的对齐、顺序调整。Grid则为二维布局提供了强大的工具,能够精确控制元素在网格中的位置和大小,适用于创建复杂的网页结构。 3. **JavaScript/ ...
总结来说,"ext三列拖动"是使用ExtJS实现的一种交互特性,允许用户通过拖放操作自由调整数据表格的列顺序。这个功能的实现涉及到了ExtJS的组件、布局、事件处理以及与后端数据的同步。理解和掌握这一特性,对于开发...
"jQuery购物车拖拽效果"是指利用jQuery实现的一种交互式功能,让用户能够通过鼠标拖动来调整购物车中商品的位置,提供更直观、友好的用户体验。下面我们将深入探讨这一主题。 首先,jQuery的拖拽效果主要依赖于`...
**框架布局** 这种左右拖动的iframe框架可能基于CSS布局技术,如Flexbox或Grid。这些现代布局模式使得我们可以方便地控制元素的对齐方式、大小和顺序,特别是在响应式设计中,它们可以帮助我们创建出适应不同屏幕...