惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
A
About on SuperTechFans
V
Visual Studio Blog
美团技术团队
雷峰网
雷峰网
J
Java Code Geeks
L
LINUX DO - 最新话题
T
Threatpost
I
Intezer
Simon Willison's Weblog
Simon Willison's Weblog
月光博客
月光博客
博客园 - Franky
The Cloudflare Blog
AWS News Blog
AWS News Blog
T
Tor Project blog
IT之家
IT之家
S
SegmentFault 最新的问题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园_首页
T
The Exploit Database - CXSecurity.com
L
LINUX DO - 热门话题
S
Securelist
V
V2EX
C
CERT Recently Published Vulnerability Notes
T
Threat Research - Cisco Blogs
Attack and Defense Labs
Attack and Defense Labs
人人都是产品经理
人人都是产品经理
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Cyberwarzone
Cyberwarzone
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
T
Tenable Blog
爱范儿
爱范儿
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News: Ask HN
Hacker News: Ask HN
小众软件
小众软件
Spread Privacy
Spread Privacy
S
Security Affairs
NISL@THU
NISL@THU
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
MongoDB | Blog
MongoDB | Blog
AI
AI
Cisco Talos Blog
Cisco Talos Blog
N
Netflix TechBlog - Medium
博客园 - 司徒正美

博客园 - 萧萧空间

Windows 2003,XP安装Windows Phone 7 从海量数据中找出中位数(转) 界面开发(五)--- 界面优化 界面开发(四)--- 还窗体的新面貌 界面开发(三)--- 设置窗体的Region 界面开发(二)--- NativeWindow 界面开发(一)--- Hook所有的窗体 界面开发概述 ExtJs扩展之GroupPropertyGrid ExtJs之带图片的下拉列表框 寻找第K大的数的方法总结 我自己的ColorSpy Office 2010 beta版安装 Java反编译工具JD Splash窗体(ProgressWindowForm修改) 异步窗体实现操作进度(ProgressWindow) 线程封装组件(BackgroundWorker)和线程(Thread) 多线程开发 NSIS 的使用心得
ExtJs Grid Drag Drap
萧萧空间 · 2009-12-08 · via 博客园 - 萧萧空间

/*
 * Ext JS Library 3.0 Pre-alpha
 * Copyright(c) 2006-2008, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * 
http://extjs.com/license
 
*/

Ext.onReady(function(){

// NOTE: This is an example showing simple state management. During development,
    
// it is generally best to disable state management as dynamically-generated ids
    
// can change across page loads, leading to unpredictable results.  The developer
    
// should ensure that stable state ids are set for stateful components in real apps.    
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider());

    var myData 

= [
        [
'3m Co',71.72,0.02,0.03,'9/1 12:00am'],
        [
'Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'],
        [
'Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'],
        [
'American Express Company',52.55,0.01,0.02,'9/1 12:00am'],
        [
'American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am'],
        [
'AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am'],
        [
'Boeing Co.',75.43,0.53,0.71,'9/1 12:00am'],
        [
'Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am'],
        [
'Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am'],
        [
'E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'9/1 12:00am'],
        [
'Exxon Mobil Corp',68.1,-0.43,-0.64,'9/1 12:00am'],
        [
'General Electric Company',34.14,-0.08,-0.23,'9/1 12:00am'],
        [
'General Motors Corporation',30.27,1.09,3.74,'9/1 12:00am'],
        [
'Hewlett-Packard Co.',36.53,-0.03,-0.08,'9/1 12:00am'],
        [
'Honeywell Intl Inc',38.77,0.05,0.13,'9/1 12:00am'],
        [
'Intel Corporation',19.88,0.31,1.58,'9/1 12:00am'],
        [
'International Business Machines',81.41,0.44,0.54,'9/1 12:00am'],
        [
'Johnson & Johnson',64.72,0.06,0.09,'9/1 12:00am'],
        [
'JP Morgan & Chase & Co',45.73,0.07,0.15,'9/1 12:00am'],
        [
'McDonald\'s Corporation',36.76,0.86,2.40,'9/1 12:00am'],
        ['Merck & Co., Inc.',40.96,0.41,1.01,'9/1 12:00am'],
        [
'Microsoft Corporation',25.84,0.14,0.54,'9/1 12:00am'],
        [
'Pfizer Inc',27.96,0.4,1.45,'9/1 12:00am'],
        [
'The Coca-Cola Company',45.07,0.26,0.58,'9/1 12:00am'],
        [
'The Home Depot, Inc.',34.64,0.35,1.02,'9/1 12:00am'],
        [
'The Procter & Gamble Company',61.91,0.01,0.02,'9/1 12:00am'],
        [
'United Technologies Corporation',63.26,0.55,0.88,'9/1 12:00am'],
        [
'Verizon Communications',35.57,0.39,1.11,'9/1 12:00am'],            
        [
'Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am']
    ];
// example of custom renderer function
    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;
    }
// example of custom renderer function
    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;
    }
// create the data store
    var store = new Ext.data.ArrayStore({
        fields: [
           {name: 
'company'},
           {name: 
'price', type: 'float'},
           {name: 
'change', type: 'float'},
           {name: 
'pctChange', type: 'float'},
           {name: 
'lastChange', type: 'date', dateFormat: 'n/j h:ia'}
        ]
    });
    store.loadData(myData);
// create the Grid
    var grid = new Ext.grid.GridPanel({
        store: store,
        enableDragDrop: 
true,
        columns: [
            {id:
'company',header: "Company", width: 160, sortable: true, dataIndex: 'company'},
            {header: 
"Price", width: 75, sortable: true, renderer: 'usMoney', dataIndex: 'price'},
            {header: 
"Change", width: 75, sortable: true, renderer: change, dataIndex: 'change'},
            {header: 
"% Change", width: 75, sortable: true, renderer: pctChange, dataIndex: 'pctChange'},
            {header: 
"Last Updated", width: 85, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
        ],
        stripeRows: 
true,
        autoExpandColumn: 
'company',
        height:
350,
        width:
600,
        title:
'Array Grid'
    });    
    grid.render(
'grid-example');
    
    var drogAndDrap 
= new Ext.dd.DropTarget(grid.container, {
        ddGroup : 
'GridDD',
        copy    : 
false,
        notifyDrop : function(dd, e, data) {
            var rows 
= data.selections;
            var index 
= dd.getDragData(e).rowIndex;
            
if (typeof(index) == "undefined") {
                
return;
            }
            
for(i = 0; i < rows.length; i++) {
                var rowData 
= rows[i];
                
if(!this.copy) 
                    store.remove(rowData);
                store.insert(index, rowData);
            }
        }
    });
});

    A simple class that provides the basic implementation needed to make any element a drop target that can have draggable items dropped onto it.  The drop has no effect until an implementation of notifyDrop is provided.