Telerik RadTreeView Перетащите N Drop Узлы - PullRequest
1 голос
/ 24 июня 2010

Какой лучший способ переопределить текст по умолчанию и создать «Visual Cue» при перетаскивании узла RadTreeView в другой.Я начал с:

...
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 пикселей ниже перетаскиваемого узла и существующего текста для перетаскивания (RadTreeView) по-прежнему отображает (отображает имя текста узла - я хочу, чтобы он был удален или переопределен / скрыт).

ОБНОВЛЕНИЕ ОК Я использовал args._domEvent.clientX и .clientY сейчас.Закрыть, но теперь мне нужен способ удалить собственный текст RadTreevIew.

1 Ответ

2 голосов
/ 24 июня 2010

Мне удалось разобраться с помощью отладчика IE (мог бы использовать любой другой отладчик) и заметил, что у отправителя есть этот _draggingClue - BINGO !!Так что все, что осталось, это оформить его так:

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();
    }
}

Надеюсь, это поможет кому-то и, возможно, мне через столько лет;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...