大神们, 谁知道Ext DataView 里面的数据怎么拖动改变位置那? 我在里面放了一个图片,图片上有链接是个附件, 谁知道怎么拖拽改变位置。 给点资料。鄙人不胜感激。
function onDataViewRender(v){
//创建拖拽对象
var dd = new Ext.dd.DragDrop(v.el);
//存储被拖拽的节点
var dragData = null;
dd.onMouseDown = function(e) {
var t,idx,record;
try {
t = e.getTarget(v.itemSelector);
idx = v.indexOf(t);
record = v.getStore().getAt(idx);
// Found a record to move
if (t && record) {
dragData = {
origIdx : idx,
lastIdx : idx,
record : record
};
return true;
}
} catch (ex) { dragData = null; }
return false;
},
//开始拖拽
dd.startDrag = function(x, y) {
if (!dragData) { return false; }
Ext.fly(v.getNode(dragData.origIdx)).addClass('thumb');
v.el.addClass('thumb-wrap-selected');
},
//结束拖拽
dd.endDrag = function(e) {
if (!dragData) { return true; }
Ext.fly(v.getNode(dragData.lastIdx)).removeClass('thumb');
v.el.removeClass('thumb-wrap-selected');
return true;
},
dd.onDrag = function(e) {
var t,idx,record,data = dragData;
if (!data) { return false; }
try {
t = e.getTarget(v.itemSelector);
idx = v.indexOf(t);
record = v.getStore().getAt(idx);
if (idx === data.lastIdx) { return true; }
//将数据插入到新的位置
if (t && record) {
data.lastIdx = idx;
v.getStore().remove(data.record);
v.getStore().insert(idx, [data.record]);
Ext.fly(v.getNode(idx)).addClass('thumb');
return true;
}
} catch (ex) { return false; }
return false;
}
}
这是从网上找的代码,说是放到render事件中就可以用了。 大神们,帮忙看看 事件该怎么写? 还有传的那个参数v 具体代表的是什么意思?
var dataview = new Ext.DataView({
id:'View_CzsmFile_id',
store: store,
tpl: tpl,
autoScroll: true,
multiSelect: false,
overClass:'x-view-over',
itemSelector:'div.thumb-wrap',
style:'padding:5px',
render:onDataViewRender(?),//此处为写事件的地方。这该传什么参数?
emptyText: '<div style="margin:10px;padding:10 0 10 0;text-align:center;background:#BBBB00;color:#FFFFFF">暂未上传附件 !</div>'
});
这是我写的dataview帮忙看看 render事件该怎么写?