`

gridpanel中拖拽排序

EXT 
阅读更多
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->     //  定义拖动时样式
    function change(val){
        
if(val > 0){
            
return '<span style="color:green;">' + val + '</span>';
        }
else if(val < 0){
            
return '<span style="color:red;">' + val + '</span>';
        }
        
return val;
    }

    
// 定义拖动时样式
    function pctChange(val){
        
if(val > 0){
            
return '<span style="color:green;">' + val + '%</span>';
        }
else if(val < 0){
            
return '<span style="color:red;">' + val + '%</span>';
        }
        
return val;

    }

 

  var sm2 = new Ext.grid.RowSelectionModel({singleSelect: true});

   var cm = new Ext.grid.ColumnModel([sm2,
       {  id:'id',
          width: "10%",
          dataIndex:"id"
       },
           {
                id:'name',
                width: 220,
                dataIndex:"name",
             header:"分类名"
           },
           {
           id:'state',
               dataIndex:"state",
            header:"是否启用"
         },{
           id:'type',
               dataIndex:"type",
            header:"分类类型"
           }
   ]);

    // gridpanel
   var grid = new Ext.grid.GridPanel({
       iconCls:
'icon-grid',
       frame:
true,
    renderTo:Ext.get(
"divgrid"),
     cm:cm,
     sm: sm2,
     enableDragDrop: 
true,
        dropConfig: {
            appendOnly:
true
        },
        ddGroup: 
"GridDD",
      store:store,
        buttons: [{text:
'Save'},{text:'Cancel'}],
        buttonAlign:
'center'
   });

    
//拖动排序必须的代码
    var ddrow = new Ext.dd.DropTarget(grid.getEl(), {
        ddGroup: 
"GridDD",  // Data come from
        // copy:true,
        notifyDrop : function(dd, e, data){
            
var rows=grid.getSelectionModel().getSelections();
            
var count = rows.length;
            
var cindex=dd.getDragData(e).rowIndex;
            
var array=[];
            
for(var i=0;i<count;i++){
                
var index = cindex+i;
                array.push(index);
            }
             store.remove(store.getById( data.selections[
0].id));
            store.insert(cindex,data.selections); 

           grid.getView().refresh(); 
            grid.getSelectionModel().selectRows(array); 
        }
    });

    
// 传到后台排序的数据
       function getSortIndexDate(store) {
            
var resultNode =[];
            
var length = store.getCount();
            
for (var i = 0; i < length; i++) {                        
                resultNode[i] 
= {
                id: store.getAt(i).id,
                sortIndex:store.getAt(i).data.index 
                };
            }

             
var encNodes = Ext.encode(resultNode);         
                
return encNodes;
        }
hello
分享到:
评论

相关推荐

    Ext.net实现GridPanel拖动行、上移下移排序功能DEMO

    对于GridPanel中拖动选中行排序...3、拖动排序功能支持Grid单选与多选模式。 4、加了【最上】【最下】【上移】【下移】四个按钮排序的功能。目前按钮排序只能在Grid的单选模式下使用。 实现说明与功能演示请见我的Blog

    Extjs4实现两个GridPanel之间数据拖拽功能具体方法

    例如,可能需要加入排序功能,此时会使用到拖拽排序插件,或者在拖拽过程中会有动画效果,那么需要使用拖拽动画相关的设置。总之,ExtJS提供了一套完整的组件和插件体系,足以应对大多数前端交互场景,包括实现两个...

    ext.net 动态创建gridpanel

    在这个场景中,我们将深入探讨如何使用Ext.NET代码动态创建GridPanel,并在各种窗口中灵活展示。 1. **动态创建GridPanel**: 在Ext.NET中,动态创建GridPanel意味着在运行时根据需要生成组件。这通常涉及到在...

    Extjs入门教程(treePanel和GridPanel)

    6. 用户交互:实现拖放功能,允许用户通过拖动TreePanel的节点来调整结构,或者拖放到GridPanel中进行操作。 在"我自己写的Extjs入门教程"这个压缩包中,可能包含的文件可能有HTML示例文件、JavaScript代码文件、...

    GridPanel属性详解

    `Ext.grid.GridPanel` 是ExtJS中用于展示表格数据的核心组件之一。它提供了丰富的配置选项和方法来帮助开发者灵活地控制表格的表现形式及功能。接下来,我们将详细探讨`Ext.grid.GridPanel`的一些关键属性。 #### ...

    Ext.grid.GridPanel属性祥解

    `Ext.grid.GridPanel`是ExtJS中用于展示表格数据的核心组件之一。它提供了丰富的配置选项和方法来帮助开发者灵活地控制表格的表现形式及功能。对于初学者或者希望深入理解`GridPanel`特性的Web开发人员来说,掌握其...

    ExtJS介绍以及GridPanel

    4. 实例化GridPanel:配置GridPanel的各种属性,如高度、宽度、是否可拖动列等,然后将Store和ColumnModel传递给GridPanel。 5. 渲染GridPanel:将GridPanel添加到容器中,完成渲染。 在实际应用中,GridPanel还...

    Extjs2.02 Gridpanel

    GridPanel不仅能够处理基本的表格操作,如单选、多选、排序、改变列宽等,还支持更高级的功能,如单元格自定义渲染、本地和远程分页、行编辑、行添加和删除等。 首先,让我们深入了解EXTJS GridPanel的构建过程: ...

    ExtJs 2.0 GridPanel+Struts2 with JSON plugin[更新代码]

    GridPanel 是 ExtJS 中的核心组件之一,它能够展示表格数据,并提供了排序、分页、筛选等多种功能。在 ExtJS 2.0 中,GridPanel 的配置和使用涉及到以下知识点: 1. **创建 GridPanel**:首先,你需要定义数据源,...

    Ext实现的拖拽树和表格之间的拖拽

    这可以通过在GridPanel配置中添加`ddGroup`属性,并创建一个新的DropZone实例,定义`onNodeEnter`, `onNodeOver`, `onNodeOut`以及`onNodeDrop`等方法来处理拖放事件。 3. **数据交换**: 当拖动操作发生时,我们...

    JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色

    ExtJS中的表格功能非常强大,包括了排序、缓存、拖动、隐藏某一列、自动显示行号、列汇总、单元格编辑等实用功能,通过本篇文章给大家介绍JavaScript中使用sencha gridpanel 编辑单元、改变单元格颜色,感兴趣的朋友...

    ext.net 1.x DEMO

    这种功能常用于构建交互性更强的界面,如在日历组件中拖动事件、在列表中重新排序项目等。实现拖放功能通常涉及设置相关组件的 draggable 和 droppable 属性,以及定义拖放事件的处理函数。 **引用 Ext.Net.dll 和 ...

    深入浅出Ext JS(第2版) 随书光盘提供的书中实例

    2. **数据绑定**:Ext JS支持与服务器端的数据进行双向绑定,实例中会展示如何使用Store、Model和Proxy来处理数据,以及GridPanel如何动态显示和编辑数据。 3. **表格和表单**:演示了如何创建复杂的表格系统,包括...

    Ext3.0的个人笔记及例子

    8. **GridPanel(表格面板)**:GridPanel是用于展示二维数据的组件,可以进行排序、筛选、分页操作。它支持行选择、单元格编辑,可以与服务器端进行数据交互,实现数据的增删改查。 9. **ViewPort(视口)**:在...

    GRID拖拽行的实例代码

    在创建这两个面板时,我们设置了`enableDragDrop`属性为`true`,这允许用户选择并拖动GRID中的行。例如: ```javascript var firstGrid = new Ext.grid.GridPanel({ // ... enableDragDrop: true, // ... }); ...

    Ext表格控件和树控件

    它提供了丰富的功能,例如排序、缓存、拖动列、隐藏列、自动显示行号、列汇总以及单元格编辑等功能。`GridPanel` 类继承自 `Panel` 类,并且它的 `xtype` 为 `grid`。 要创建一个 `GridPanel`,首先需要定义列信息...

    整理过的GRID综合应用

    5. **GRID框架与库**:在实际开发中,常见的GRID解决方案有Ext JS的GridPanel、jQuery UI的DataTables、AngularJS的UI-Grid等。这些库提供了丰富的API和配置选项,简化了开发流程,同时也提供了诸如拖放排序、行编辑...

    Ext3.2中文API文档

    6. **数据网格**:Ext的GridPanel组件是数据展示的强大工具,支持分页、排序、过滤和编辑功能。 7. **图表和图形**:Ext3.2引入了Chart组件,可以创建各种统计图表,用于数据可视化。 8. **拖放功能**:Ext支持...

    ext中文文档(第一部分)

    6. **表格和网格**:EXT的GridPanel是其强大特性之一,支持大量数据的展示和操作,包括排序、过滤、分页等。 7. **表单处理**:EXT提供了丰富的表单组件,如文本框、下拉框、日期选择器等,以及表单验证和提交机制。...

Global site tag (gtag.js) - Google Analytics