开发者

Dojo drag and drop, how do we save the position

After dojo drag and drop, once the page is submitte开发者_如何学JAVAd, I have to save the position of every item that has been placed into "targetZone". How can we save the position?


Eugen answered it here : Dojo Drag and drop: how to retrieve order of items?

That would be the right way. If you look at the link above, you can save the resulting "orderedDataItems" object as a JSON ...

Look at the following function. It saves our DND "Lightbox" (dojo.dnd.source) to a JSON.

  • _it is the current raw dnd item
  • _it.data.item contains all your stuff you need to keep
  • in our case _it.data.item.label keeps the customized nodes (pictures, video, docs) as a string, we can use later to dojo.place it
  • it is the dnd item you want to save without dom nodes

E.g. if you drop items from a dijit tree to a arbitrary dojo dnd source / target: _RAM or _S in our data.item we made before needs to be overwritten.

LBtoJson: function(){
        var that = this;
        var orderedLBitems = this.dndSource.getAllNodes().map(function(node){

            var _it = that.dndSource.getItem(node.id);

            var it = { data:{ item:{} }, label:'', type:'' };
            if((_it.data.item._RAM)){_it.data.item._RAM={}}
            if((_it.data.item._S)){_it.data.item._S={}}

            it.data.item = dojo.clone(_it.data.item);
            it.label = it.data.item.label[0]||it.data.item.label;
            it.type = _it.type;
            console.log( it );
            return it;
        });
        var LBjson = dojo.toJson(orderedLBitems);
        return LBjson;
    }


By calling getAllNodes(), you'll receive a list of nodes in the order they are shown. So if you wanted to save a list in a specific order, you could do something similar to this:

var data;
var nodes = dndSrc.getAllNodes();
for(var i; i < nodes.length; i++)
{
    data.push({id: nodes[i].id, order: i});
}

For more information about Dojo DnD regarding data submission, check out this article about DnD and Form Submission: http://www.chrisweldon.net/2009/05/09/dojo-drag-n-drop-and-form-submission

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜