首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Telerik RadTreeView拖动N个丢弃节点

Telerik RadTreeView拖动N个丢弃节点
EN

Stack Overflow用户
提问于 2010-06-24 10:49:43
回答 1查看 2K关注 0票数 1

在将RadTreeView节点拖到另一个节点时,重写默认文本并创建"Visual“的最佳方法是什么。我一开始是:

代码语言:javascript
复制
...
telerik:RadTreeView OnClientNodeDragging="ClientNodeDragging"
...

function ClientNodeDragging(sender, args)
{
    if (!visualClue)
    {
        visualClue = createVisualClue();
        document.body.insertBefore(visualClue, document.body.firstChild);
    }

    visualClue.style.left = args._domEvent.screenX + "px";
    visualClue.style.top = args._domEvent.screenY + "px";
}

是在屏幕上显示文本的方法吗?

目前,它在可拖放节点下方约为20 px,而现有的拖放文本(RadTreeView)仍然显示(显示节点文本的名称--我希望删除或覆盖/隐藏它)。

更新 OK我现在使用了args._domEvent.clientX.clientY。接近了,但现在我需要一个删除RadTreevIew自己的文本的方法。

EN

回答 1

Stack Overflow用户

发布于 2010-06-24 13:57:54

我设法通过使用IE的调试器(本可以使用任何其他调试器)来解决这个问题,并注意到发送方拥有这个_draggingClue -宾果!!所以剩下的就是用这样的方式:

代码语言:javascript
复制
function ClientNodeDragging(sender, args)
{
    var node = args.get_node();
    if (node.get_level() != 0)
    {
        var dom = args.get_domEvent();
        var div = sender._draggingClue;
        var moveCopyText = "Copy";
        var hidden = document.getElementById("<%= MoveCopyHiddenField.ClientID %>");

        if (dom.shiftKey) {
            hidden.value = "true";
            moveCopy = true;
        }
        else if (dom.ctrlKey) {
            hidden.value = "false";
            moveCopy = false;
        }
        else {
            hidden.value = "true";
            moveCopy = true;
        }

        if(moveCopy)
            moveCopyText = "Move";
        else
            moveCopyText = "Copy";

        div.className = "DragFile";
        div.style.height = '15px';
        div.style.paddingTop = '3px';
        div.innerHTML = moveCopyText + " " + node.get_text();
    }
}

希望这能在这么多年的时间里帮助别人,或许帮助我自己;)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3109257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档