Telerik is a leading vendor of ASP.NET AJAX, ASP.NET MVC, Silverlight, WinForms and WPF controls and components, as well as .NET Reporting, .NET ORM , .NET CMS, Code Analysis, Mocking, Team Productivity and Automated Testing Tools. Building on its expertise in interface development and Microsoft technologies, Telerik helps customers build applications with unparalleled richness, responsiveness and interactivity. Telerik products help thousands of companies to be more productive and deliver reliable applications under budget and on time.
select

ListView / Items Drag-and-drop

4  Psychosocial

Slipknot
All Hope Is Gone (2008)

2  Dam That River

Alice in Chains
Dirt (1992)

2  Show Me How To Live

AudioSlave
AudioSlave (2002)

1  Enter Sandman

Metallica
Metallica (1991)

 Moonlight Sonata

Beethoven

 Ave Maria

Gounod

 Turkish March

Mozart

3  One on One

Wayman Tisdale
(1999)

1  All Or Nothing At All

Kurt Elling
(2007)

1  The Message

Grandmaster Flash & The Furious 5
(1996)

5  Planet Rock

Afrika Bambataa
(1997)

4  Fireflies

Owl City
(2005)

3  Love Story

Taylor Swift
(2000)

3  Use Somebody

Kings of Leon
(2009)

  • Drag a track to the right and drop over a category to organize.

Source Code

C# VB.NET
Show code in new window Demo isolation steps
  • <%@ Page Language="c#" Inherits="Telerik.ListViewExamplesCSharp.ItemDragDrop.DefaultCS"
        CodeFile="DefaultCS.aspx.cs" %>

    <%@ Register TagPrefix="telerik" Namespace="Telerik.QuickStart" %>
    <%@ Register TagPrefix="telerik" TagName="Header" Src="~/Common/Header.ascx" %>
    <%@ Register TagPrefix="telerik" TagName="HeadTag" Src="~/Common/HeadTag.ascx" %>
    <%@ Register TagPrefix="telerik" TagName="Footer" Src="~/Common/Footer.ascx" %>
    <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
    <%@ Register TagPrefix="sds" Namespace="Telerik.Web.SessionDS" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <telerik:HeadTag runat="server"></telerik:HeadTag>
        <link href="style.css" type="text/css" rel="Stylesheet" />
    </head>
    <body class="BODY">
        <form runat="server" id="mainForm" method="post">
        <div>
            <telerik:Header runat="server" ID="Header1" NavigationLanguage="CS" ShowSkinChooser="true"
                OnSkinChanged="Header1_SkinChanged"></telerik:Header>
            <!-- content start -->
            <telerik:RadScriptManager ID="RadScriptManager1" runat="server" />
            <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Office2007">
            </telerik:RadAjaxLoadingPanel>
            <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="RadAjaxLoadingPanel1">
                <div id="trackContainer">
                    <telerik:RadListView ID="RadListView1" runat="server" OnNeedDataSource="RadListView1_NeedDataSource"
                        OnItemDrop="RadListView1_ItemDrop" ItemPlaceholderID="TrackContainer" DataKeyNames="TrackID, Title, Artist"
                        ClientDataKeyNames="TrackID, Title, Artist">
                        <ClientSettings AllowItemsDragDrop="true">
                            <ClientEvents OnItemDragStarted="itemDragStarted" OnItemDragging="itemDragging" OnItemDropping="trackDropping" />
                        </ClientSettings>
                        <LayoutTemplate>
                            <div class="RadListView RadListView_<%# Container.Skin %>">
                                <asp:PlaceHolder ID="TrackContainer" runat="server"></asp:PlaceHolder>
                            </div>
                        </LayoutTemplate>
                        <ItemTemplate>
                            <div class="track rlvI">
                                <telerik:RadListViewItemDragHandle ID="RadListViewItemDragHandle1" runat="server"
                                    ToolTip="Drag to organize" />
                                <div class="info">
                                    <h3>
                                        <%# (int)Eval("TrackNumber") > 0 ? Eval("TrackNumber") : "" %>
                                        &nbsp;<%# Eval("Title") %></h3>
                                    <div class="artist">
                                        <%# Server.HtmlEncode(Eval("Artist").ToString()) %></div>
                                    <div class="album">
                                        <%# Eval("Album") %>
                                        <%# (int)Eval("Year") > 0 ? "(" + Eval("Year") + ")" : ""%>
                                    </div>
                                </div>
                            </div>
                        </ItemTemplate>
                        <EmptyDataTemplate>
                            <div class="noTracks">
                                No tracks in this section
                            </div>
                        </EmptyDataTemplate>
                    </telerik:RadListView>
                </div>
                <div id="genreContainer">
    <asp:Repeater ID="GenresRepeater" runat="server" OnItemCommand="GenresRepeater_ItemCommand"
    OnPreRender="GenresRepeater_PreRender">

                        <ItemTemplate>
                            <asp:LinkButton ID="GenreLink" runat="server" CommandName="ShowTracks" CommandArgument='<%# Eval("Key") %>'
                                onmouseover='this.className += " selected";' onmouseout='this.className = this.className.split(" selected").join("");'>
                                <%# Eval("Key").ToString() == "" ? "Unsorted" : Eval("Key") %>&nbsp;
                                (<%# Eval("Value") %> items)
                            </asp:LinkButton>
                        </ItemTemplate>
                    </asp:Repeater>
                </div>
                <div style="clear: both">
                </div>
                <asp:Panel ID="ResultsPanel" runat="server" CssClass="result">
                </asp:Panel>
            </telerik:RadAjaxPanel>
            <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
                <script type="text/javascript">
                <!--
                    var originalMsg = "";

                    function itemDragStarted(sender, args) {
                        var title = args.get_dataKeyValues().Title;
                        var artist = args.get_dataKeyValues().Artist;

                        showAction(title, artist);
                    }

                    function itemDragging(sender, args) {
                        var evt = args.get_domEvent();
                        var genreContainer = $get("genreContainer");
                        var itemIndex = sender._itemDrag._draggedItemIndex;
                        var clientKeys = sender.get_clientDataKeyValue()[itemIndex];
                        var title = clientKeys.Title;
                        var artist = clientKeys.Artist

                        if ($telerik.isMouseOverElementEx(genreContainer, evt)) {
                            var target = evt.srcElement || evt.originalTarget;
                            var genre = target.className;

                            showAction(title, artist, genre.split(' ')[0]);
                        }
                        else {
                            showAction(title, artist);
                        }
                    }

                    function showAction(title, artist, genre) {
                        var titleDiv = title ? String.format("<div class='track'><b>{0}</b><br />{1}</div>", title, artist) : "";
                        var arrowDiv = genre ? "<div class='arrow'></div>" : "";
                        var genreDiv = genre ? String.format("<div class='genre {0}'>{0}</div>", genre) : "";

                        $get("ResultsPanel").innerHTML = String.format("{0}{1}{2}", titleDiv, genreDiv, arrowDiv);
                    }

                    function trackDropping(sender, args) {
                        var dest = args.get_destinationElement();
                        if (!dest || !dest.id || dest.id.indexOf("GenreLink") < 0) {
                            args.set_cancel(true);
                        }

                        showAction();
                    }
                    -->
                </script>
            </telerik:RadCodeBlock>
            <!-- content end -->
            <telerik:Footer runat="server" ID="Footer1" />
        </div>
        </form>
    </body>
    </html>

Get more than expected!

Take your time to truly experience the power of RadControls for ASP.NET AJAX with a free 60-day trial backed up by Telerik’s unlimited dedicated support.

Download your RadControls for ASP.NET AJAX trial and jumpstart your development with the available Getting Started resources.

If you have any questions, do not hesitate to contact us at sales@telerik.com.

Copyright 2002-2012 © Telerik. All right reserved
Telerik Inc, 201 Jones Rd, Waltham, MA 02451