This is a migrated thread and some comments may be shown as answers.

Drag and Drop between two radgrid in both direction

7 Answers 143 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Ben
Top achievements
Rank 1
Ben asked on 20 Oct 2010, 04:19 PM
Hi,
I have created two radgrid as drag and drop radgrid telerik demo. I am able to drag and drop rows from grdPendingOrders to grdShippedOrders and drag drop from grdShippedOrders to RecycleBin. I want to get drag and drop in both direction. I mean, reverse direction too: drag and drop from grdShippedOrder to grdPendingOrder and drop to Recycle Bin from grdPendingOrder. Any body can help me to complete this task.

7 Answers, 1 is accepted

Sort by
0
David
Top achievements
Rank 1
answered on 20 Oct 2010, 06:04 PM



<%@ Page Language="c#" AutoEventWireup="false" CodeFile="dragDrop.aspx.cs" Inherits="Telerik.GridExamplesCSharp.Programming.DragAndDrop.DefaultCS" %>
  
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<head runat="server">
      
    <link href="Common/example.css" rel="stylesheet" type="text/css" />
</head>
<body class="BODY">
    <form id="mainForm" method="post" runat="server">
      
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
    </telerik:RadScriptManager>
    <!-- content start -->
    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" />
    <telerik:RadAjaxManager runat="server" ID="radAjax" DefaultLoadingPanelID="RadAjaxLoadingPanel1">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="grdCurrentAssignment">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="grdCurrentAssignment" />
                    <telerik:AjaxUpdatedControl ControlID="grdAvailableMedia" />
                    <telerik:AjaxUpdatedControl ControlID="msg" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="grdAvailableMedia">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="grdAvailableMedia" />
                    <telerik:AjaxUpdatedControl ControlID="grdCurrentAssignment" />
                    <telerik:AjaxUpdatedControl ControlID="msg" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="UseDragColumnCheckBox">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="grdCurrentAssignment" />
                    <telerik:AjaxUpdatedControl ControlID="grdAvailableMedia" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    <telerik:RadScriptBlock runat="server" ID="scriptBlock">
  
        <script type="text/javascript">
                <!--
            function onRowDropping(sender,args) {
                if(sender.get_id()=="<%=grdCurrentAssignment.ClientID %>") {
                    var node=args.get_destinationHtmlElement();
                    if(!isChildOf('<%=grdAvailableMedia.ClientID %>',node)&&!isChildOf('<%=grdCurrentAssignment.ClientID %>',node)) {
                        args.set_cancel(true);
                    }
                }
                else if (sender.get_id() == "<%=grdAvailableMedia.ClientID %>") {
                    var node = args.get_destinationHtmlElement();
                    if (!isChildOf('<%=grdCurrentAssignment.ClientID %>', node) && !isChildOf('<%=grdAvailableMedia.ClientID %>', node)) {
                        args.set_cancel(true);
                    }
                }
                  
                else {
                    var node=args.get_destinationHtmlElement();
                    if(!isChildOf('trashCan',node)) {
                        args.set_cancel(true);
                    }
                    else {
                        if(confirm("Are you sure you want to delete this order?"))
                            args.set_destinationHtmlElement($get('trashCan'));
                        else
                            args.set_cancel(true);
                    }
                }
            }
  
            function isChildOf(parentId,element) {
                while(element) {
                    if(element.id&&element.id.indexOf(parentId)> -1) {
                        return true;
                    }
                    element=element.parentNode;
                }
                return false;
            }
                    -->
        </script>
  
    </telerik:RadScriptBlock>    
    <div class="exWrap">
        <div class="msgTop">
  
        <table>
        <tr><td>
        <div style="padding: 0 10px 0 6px">
            <h2 style="color: #3c8b04">
                All Available Media</h2>
            <telerik:RadGrid runat="server" AllowPaging="True" ID="grdAvailableMedia" OnNeedDataSource="grdAvailableMedia_NeedDataSource"
                 Width="350px" OnRowDrop="grdAvailableMedia_RowDrop" 
                AllowMultiRowSelection="True" AllowSorting="True" GridLines="None" PageSize="30"  
                Skin="Telerik">
                <MasterTableView DataKeyNames="media_id" Width="100%">
  
<CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings>
                    <Columns>
                        <telerik:GridDragDropColumn HeaderStyle-Width="18px" Visible="false" >
<HeaderStyle Width="18px"></HeaderStyle>
                        </telerik:GridDragDropColumn>
                    </Columns>
                    <NoRecordsTemplate>
                        <div style="height: 30px; cursor: pointer;">
                            No items to view</div>
                    </NoRecordsTemplate>
                    <PagerStyle Mode="NumericPages" PageButtonCount="4" />
                </MasterTableView>
                <ClientSettings AllowRowsDragDrop="True" AllowColumnsReorder="True" 
                    ReorderColumnsOnClient="True">
                    <Selecting AllowRowSelect="True" EnableDragToSelectRows="false" />
                    <ClientEvents OnRowDropping="onRowDropping" />
                    <Scrolling AllowScroll="True" UseStaticHeaders="True" />
                </ClientSettings>
            </telerik:RadGrid>
        </div>        
          
  
        </td>
        <td>
        <div style="padding: 0 6px 0 10px">
            <h2 style="color: #9c3608">
                Current Assignment</h2>
            <telerik:RadGrid runat="server" ID="grdCurrentAssignment" OnNeedDataSource="grdCurrentAssignment_NeedDataSource"
                AllowPaging="True" Width="100%" OnRowDrop="grdCurrentAssignment_RowDrop" AllowMultiRowSelection="True"
                PageSize="30" EnableHeaderContextMenu="True" AllowSorting="True" 
                GridLines="None" Skin="WebBlue">
                <MasterTableView DataKeyNames="media_id" TableLayout="Fixed">
<CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings>
                    <Columns>
                        <telerik:GridDragDropColumn HeaderStyle-Width="18px" Visible="false" >
<HeaderStyle Width="18px"></HeaderStyle>
                        </telerik:GridDragDropColumn>
                    </Columns>
                </MasterTableView>
                <ClientSettings AllowRowsDragDrop="True" AllowColumnsReorder="true" ReorderColumnsOnClient="true">
                    <Resizing AllowColumnResize="true" />
                    <Selecting AllowRowSelect="True" EnableDragToSelectRows="false"/>
                    <ClientEvents OnRowDropping="onRowDropping" />
                    <Scrolling AllowScroll="true" UseStaticHeaders="true"/>
                </ClientSettings>
                <PagerStyle Mode="NumericPages" PageButtonCount="4" />
            </telerik:RadGrid>
        </div>
        </td></tr>
        </table>
        <div style="clear: both;">
            <!-- -->
        </div>
       <%-- <div class="exFooter">
            <a id="trashCan" href="#" onclick="return false;">Recycle Bin</a>
            <div class="exMessage" runat="server" id="msg" visible="false" enableviewstate="false">
                Order(s) successfully deleted!
            </div>
        </div>--%>
    </div>
    <!-- content end -->
      
    </form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Web.UI;
using Telerik.Web.UI;
  
namespace Telerik.GridExamplesCSharp.Programming.DragAndDrop
{
    public partial class DefaultCS : System.Web.UI.Page
    {
        //protected void UseDragColumnCheckBox_CheckedChanged(object sender, EventArgs e)
        //{
        //    grdCurrentAssignment.MasterTableView.GetColumn("DragDropColumn").Visible = UseDragColumnCheckBox.Checked;
        //    grdCurrentAssignment.Rebind();
  
        //    grdAvailableMedia.MasterTableView.GetColumn("DragDropColumn").Visible = UseDragColumnCheckBox.Checked;
        //    grdAvailableMedia.Rebind();
        //}
  
        protected IList<clsAssignment> CurrentAssignmentMedia
        {
            get
            {
                try
                {
                    object obj = Session["CurrentAssignmentMedia"];
                    if (obj == null)
                    {
                        obj = GetOrders();
                        if (obj != null)
                        {
                            Session["CurrentAssignmentMedia"] = obj;
                        }
                        else
                        {
                            obj = new List<clsAssignment>();
                        }
                    }
                    return (IList<clsAssignment>)obj;
                }
                catch
                {
                    Session["CurrentAssignmentMedia"] = null;
                }
                return new List<clsAssignment>();
            }
            set { Session["CurrentAssignmentMedia"] = value; }
        }
  
        protected IList<clsAssignment> AllAvailableMedia
        {
            get
            {
                try
                {
                    object obj = Session["AllAvailableMedia"];
  
  
//
  
  
                    if (obj == null)
                    {
                        obj = GetAllMedia();
                        if (obj != null)
                        {
                            Session["AllAvailableMedia"] = obj;
                        }
                        else
                        {
                            obj = new List<clsAssignment>();
                        }
                    }
                    return (IList<clsAssignment>)obj;
//
  
  
                }
                catch
                {
                    Session["AllAvailableMedia"] = null;
                }
                return new List<clsAssignment>();
            }
            set { Session["AllAvailableMedia"] = value; }
        }
  
        private object GetAllMedia()
        {
            IList<clsAssignment> results = new List<clsAssignment>();
            using (IDbConnection connection = DbProviderFactories.GetFactory("System.Data.SqlClient").CreateConnection())
            {
                connection.ConnectionString =
                    ConfigurationManager.ConnectionStrings["heinemannConnectionString"].ConnectionString;
  
                using (IDbCommand command = connection.CreateCommand())
                {
                    command.CommandText = @"
                    SELECT 0 AS assignment_id, media_id,mediaTitle FROM mystuff_media
                        WHERE media_id NOT IN (SELECT media_id FROM mystuff_assignmentmedia)             
                      
                    ";
                    //SqlParameterCollection facID = (SqlParameterCollection)command.Parameters;
                    //facID.Add("@facid", SqlDbType.Int).Value = 159039;
                    connection.Open();
                    try
                    {
                        IDataReader reader = command.ExecuteReader();
                        while (reader.Read())
                        {
                            int assignment_id = (int)reader.GetValue(reader.GetOrdinal("assignment_id"));
                            int media_id = (int)reader.GetValue(reader.GetOrdinal("media_id"));
                            //string mediaSection = (!reader.IsDBNull(reader.GetOrdinal("mediaSection")))
                            //                        ? (string)reader.GetValue(reader.GetOrdinal("mediaSection"))
                            //                        : string.Empty;
                            //string sku = (!reader.IsDBNull(reader.GetOrdinal("sku")))
                            //                        ? (string)reader.GetValue(reader.GetOrdinal("sku"))
                            //                        : string.Empty;
                            //int mediaSequence = (int)reader.GetValue(reader.GetOrdinal("mediaSequence"));
                            //string mediaType = (!reader.IsDBNull(reader.GetOrdinal("mediaType")))
                            //                        ? (string)reader.GetValue(reader.GetOrdinal("mediaType"))
                            //                        : string.Empty;
                            string mediaTitle = (!reader.IsDBNull(reader.GetOrdinal("mediaTitle")))
                                                    ? (string)reader.GetValue(reader.GetOrdinal("mediaTitle"))
                                                    : string.Empty;
                            // string mediaRelatedProduct = (!reader.IsDBNull(reader.GetOrdinal("mediaRelatedProduct")))
                            //                         ? (string)reader.GetValue(reader.GetOrdinal("mediaRelatedProduct"))
                            //                         : string.Empty;
                            //string mediaFile = (!reader.IsDBNull(reader.GetOrdinal("mediaFile")))
                            //                         ? (string)reader.GetValue(reader.GetOrdinal("mediaFile"))
                            //                         : string.Empty;
  
                            // string mediaFlashEmbedCode = (!reader.IsDBNull(reader.GetOrdinal("mediaFlashEmbedCode")))
                            //                         ? (string)reader.GetValue(reader.GetOrdinal("mediaFlashEmbedCode"))
                            //                         : string.Empty;
                            // string mediaIpadEmbedCode = (!reader.IsDBNull(reader.GetOrdinal("mediaIpadEmbedCode")))
                            //                         ? (string)reader.GetValue(reader.GetOrdinal("mediaIpadEmbedCode"))
                            //                         : string.Empty;
                            // int mediaInternapId = (int)reader.GetValue(reader.GetOrdinal("mediaInternapId"));
  
                            //DateTime requiredDate = (!reader.IsDBNull(reader.GetOrdinal("RequiredDate")))
                            //                            ? (DateTime)reader.GetValue(reader.GetOrdinal("RequiredDate"))
                            //                            : DateTime.MinValue;
                            //string companyName = (!reader.IsDBNull(reader.GetOrdinal("CompanyName")))
                            //                         ? (string)reader.GetValue(reader.GetOrdinal("CompanyName"))
                            //                         : string.Empty;
                            //results.Add(new clsAssignment(assignment_id, media_id,mediaSection, sku,  mediaSequence, mediaType, mediaTitle, mediaRelatedProduct, mediaFile, mediaFlashEmbedCode, mediaIpadEmbedCode,mediaInternapId));
                            results.Add(new clsAssignment(assignment_id, media_id, mediaTitle));
  
                        }
                    }
                    catch
                    {
                        results.Clear();
                    }
                }
            }
            return results;
  
        }
  
        protected void grdCurrentAssignment_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
        {
            grdCurrentAssignment.DataSource = CurrentAssignmentMedia;
        }
  
        protected IList<clsAssignment> GetOrders()
        {
            IList<clsAssignment> results = new List<clsAssignment>();
            using (IDbConnection connection = DbProviderFactories.GetFactory("System.Data.SqlClient").CreateConnection())
            {
                connection.ConnectionString =
                    ConfigurationManager.ConnectionStrings["heinemannConnectionString"].ConnectionString;
  
                using (IDbCommand command = connection.CreateCommand())
                {
                    command.CommandText = @"
                    DECLARE @mygroups TABLE (
                    group_id INT,
                    assignment_id int
  
                    )
  
                    INSERT INTO @mygroups 
                    SELECT a.group_id, assignment_id 
                    FROM mystuff_group g JOIN mystuff_assignment a ON g.group_id = a.group_id 
                    WHERE facilitator_shopper_id =  @facid
  
                    --SELECT * FROM mystuff_group g WHERE group_id IN (SELECT group_id FROM @mygroups)
  
                    --SELECT * FROM dbo.myStuff_assignment a WHERE group_id IN (SELECT group_id FROM @mygroups)
  
                    SELECT am.assignment_id, m.media_id, m.mediaTitle FROM dbo.myStuff_assignmentMedia am JOIN
                    dbo.myStuff_media m ON m.media_id = am.media_id 
                    WHERE am.assignment_id IN (SELECT assignment_id FROM @mygroups)                        
                      
                    ";
                    SqlParameterCollection facID = (SqlParameterCollection)command.Parameters;
                    facID.Add("@facid", SqlDbType.Int).Value = 159039;
                    connection.Open();
                    try
                    {
                        IDataReader reader = command.ExecuteReader();
                        while (reader.Read())
                        {
                            int assignment_id = (int)reader.GetValue(reader.GetOrdinal("assignment_id"));
                            int media_id = (int)reader.GetValue(reader.GetOrdinal("media_id"));
                            //string mediaSection = (!reader.IsDBNull(reader.GetOrdinal("mediaSection")))
                            //                        ? (string)reader.GetValue(reader.GetOrdinal("mediaSection"))
                            //                        : string.Empty;
                            //string sku = (!reader.IsDBNull(reader.GetOrdinal("sku")))
                            //                        ? (string)reader.GetValue(reader.GetOrdinal("sku"))
                            //                        : string.Empty;
                            //int mediaSequence = (int)reader.GetValue(reader.GetOrdinal("mediaSequence"));
                            //string mediaType = (!reader.IsDBNull(reader.GetOrdinal("mediaType")))
                            //                        ? (string)reader.GetValue(reader.GetOrdinal("mediaType"))
                            //                        : string.Empty;
                            string mediaTitle = (!reader.IsDBNull(reader.GetOrdinal("mediaTitle")))
                                                    ? (string)reader.GetValue(reader.GetOrdinal("mediaTitle"))
                                                    : string.Empty;
                           // string mediaRelatedProduct = (!reader.IsDBNull(reader.GetOrdinal("mediaRelatedProduct")))
                           //                         ? (string)reader.GetValue(reader.GetOrdinal("mediaRelatedProduct"))
                           //                         : string.Empty;
                           //string mediaFile = (!reader.IsDBNull(reader.GetOrdinal("mediaFile")))
                           //                         ? (string)reader.GetValue(reader.GetOrdinal("mediaFile"))
                           //                         : string.Empty;
  
                           // string mediaFlashEmbedCode = (!reader.IsDBNull(reader.GetOrdinal("mediaFlashEmbedCode")))
                           //                         ? (string)reader.GetValue(reader.GetOrdinal("mediaFlashEmbedCode"))
                           //                         : string.Empty;
                           // string mediaIpadEmbedCode = (!reader.IsDBNull(reader.GetOrdinal("mediaIpadEmbedCode")))
                           //                         ? (string)reader.GetValue(reader.GetOrdinal("mediaIpadEmbedCode"))
                           //                         : string.Empty;
                           // int mediaInternapId = (int)reader.GetValue(reader.GetOrdinal("mediaInternapId"));
  
                            //DateTime requiredDate = (!reader.IsDBNull(reader.GetOrdinal("RequiredDate")))
                            //                            ? (DateTime)reader.GetValue(reader.GetOrdinal("RequiredDate"))
                            //                            : DateTime.MinValue;
                            //string companyName = (!reader.IsDBNull(reader.GetOrdinal("CompanyName")))
                            //                         ? (string)reader.GetValue(reader.GetOrdinal("CompanyName"))
                            //                         : string.Empty;
                            //results.Add(new clsAssignment(assignment_id, media_id,mediaSection, sku,  mediaSequence, mediaType, mediaTitle, mediaRelatedProduct, mediaFile, mediaFlashEmbedCode, mediaIpadEmbedCode,mediaInternapId));
                            results.Add(new clsAssignment( assignment_id,media_id,mediaTitle));
                              
                        }
                    }
                    catch
                    {
                        results.Clear();
                    }
                }
            }
            return results;
        }
  
        protected void grdAvailableMedia_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
        {
            grdAvailableMedia.DataSource = AllAvailableMedia;
        }
  
  
  
        //#region RowDrop
        //protected void grd_RowDrop(object sender, GridDragDropEventArgs e)
        //{
        //    if (string.IsNullOrEmpty(e.HtmlElement))
        //    {
        //        IList<clsAssignment> toGrd;
        //        IList<clsAssignment> fromGrd;
        //        string fromClientID;
        //        string toClientID;
        //        int toCount;
  
  
  
        //        if (e.DraggedItems[0].OwnerGridID == grdAvailableMedia.ClientID)
        //        {
        //            fromGrd = AllAvailableMedia;
        //            fromClientID = grdAvailableMedia.ClientID;
        //            // assume copying to the same grid
        //            toGrd = AllAvailableMedia;
        //            toClientID = grdAvailableMedia.ClientID;
        //            toCount = AllAvailableMedia.Count;
        //        }
        //        else
        //        {
        //            fromGrd = CurrentAssignmentMedia;
        //            fromClientID = grdCurrentAssignment.ClientID;
        //            // assume copying to the same grid
        //            toGrd = CurrentAssignmentMedia;
        //            toClientID = grdCurrentAssignment.ClientID;
        //            toCount = CurrentAssignmentMedia.Count;
        //        }
  
        //        if (e.DestDataItem != null && (AllAvailableMedia.Count > 0 || CurrentAssignmentMedia.Count > 0))
        //        {
  
        //        }
        //        else
        //        {
        //            if (e.DestDataItem.OwnerGridID == grdAvailableMedia.ClientID)
        //            {
        //                toGrd = AllAvailableMedia;
        //                toClientID = grdAvailableMedia.ClientID;
        //                toCount = AllAvailableMedia.Count;
        //            }
        //            else
        //            {
        //                toGrd = CurrentAssignmentMedia;
        //                toClientID = grdCurrentAssignment.ClientID;
        //                toCount = CurrentAssignmentMedia.Count;
        //            }
        //        }
  
  
  
        //        if (e.DraggedItems[0].OwnerGridID == fromClientID)
        //        {
        //            // items are drag from Current Assignment to All Media grid  
        //            if (((e.DestDataItem == null && toCount == 0) || (e.DestDataItem != null && e.DestDataItem.OwnerGridID == toClientID)) 
        //                && fromClientID != toClientID )
        //            {
        //                //IList<clsAssignment> allAvailableMedia = AllAvailableMedia;
        //                //IList<clsAssignment> currentAssignmentMedia = CurrentAssignmentMedia;
        //                int destinationIndex = -1;
        //                if (e.DestDataItem != null)
        //                {
        //                    clsAssignment order = GetOrder(toGrd, (int)e.DestDataItem.GetDataKeyValue("media_id"));
        //                    destinationIndex = (order != null) ? toGrd.IndexOf(order) : -1;
        //                }
  
  
        //                foreach (GridDataItem draggedItem in e.DraggedItems)
        //                {
        //                    clsAssignment tmpOrder = GetOrder(fromGrd, (int)draggedItem.GetDataKeyValue("media_id"));
  
        //                    if (tmpOrder != null)
        //                    {
        //                        if (destinationIndex > -1)
        //                        {
        //                            if (e.DropPosition == GridItemDropPosition.Below)
        //                            {
        //                                destinationIndex += 1;
        //                            }
        //                            toGrd.Insert(destinationIndex, tmpOrder);
        //                        }
        //                        else
        //                        {
        //                            toGrd.Add(tmpOrder);
        //                        }
  
        //                        fromGrd.Remove(tmpOrder);
        //                    }
        //                }
  
        //                if (e.DestDataItem.OwnerGridID == grdAvailableMedia.ClientID)
        //                {
        //                    AllAvailableMedia =toGrd;
        //                    CurrentAssignmentMedia = fromGrd;
        //                }
        //                else
        //                {
        //                    AllAvailableMedia = fromGrd;
        //                    CurrentAssignmentMedia = toGrd;
        //                }
  
  
        //                grdCurrentAssignment.Rebind();
        //                grdAvailableMedia.Rebind();
        //            }
        //            else if (e.DestDataItem != null && e.DestDataItem.OwnerGridID == toClientID)
        //            {
        //                //reorder items in pending  grid
        //                IList<clsAssignment> pendingOrders = fromGrd;  //CurrentAssignmentMedia;
        //                clsAssignment order = GetOrder(pendingOrders, (int)e.DestDataItem.GetDataKeyValue("media_id"));
        //                int destinationIndex = pendingOrders.IndexOf(order);
  
        //                if (e.DropPosition == GridItemDropPosition.Above && e.DestDataItem.ItemIndex > e.DraggedItems[0].ItemIndex)
        //                {
        //                    destinationIndex -= 1;
        //                }
        //                if (e.DropPosition == GridItemDropPosition.Below && e.DestDataItem.ItemIndex < e.DraggedItems[0].ItemIndex)
        //                {
        //                    destinationIndex += 1;
        //                }
  
        //                List<clsAssignment> ordersToMove = new List<clsAssignment>();
        //                foreach (GridDataItem draggedItem in e.DraggedItems)
        //                {
        //                    clsAssignment tmpOrder = GetOrder(pendingOrders, (int)draggedItem.GetDataKeyValue("media_id"));
        //                    if (tmpOrder != null)
        //                        ordersToMove.Add(tmpOrder);
        //                }
  
        //                foreach (clsAssignment orderToMove in ordersToMove)
        //                {
        //                    pendingOrders.Remove(orderToMove);
        //                    pendingOrders.Insert(destinationIndex, orderToMove);
        //                }
        //                //CurrentAssignmentMedia = pendingOrders;
        //                toGrd = pendingOrders;
  
        //                if (toClientID == grdAvailableMedia.ClientID)
        //                {
        //                    grdAvailableMedia.Rebind();
        //                }
        //                else
        //                {
        //                     grdCurrentAssignment.Rebind();
        //                }
                         
  
  
        //                int destinationItemIndex = destinationIndex - (grdCurrentAssignment.PageSize * grdCurrentAssignment.CurrentPageIndex);
        //                e.DestinationTableView.Items[destinationItemIndex].Selected = true;
        //            }
        //        }
        //    }
        //}
  
          
  
  
  
        //#endregion
  
  
        private static clsAssignment GetOrder(IEnumerable<clsAssignment> ordersToSearchIn, int media_id)
        {
            foreach (clsAssignment order in ordersToSearchIn)
            {
                if (order.media_id == media_id)
                {
                    return order;
                }
            }
            return null;
        }
  
        #region OldRowDrops
  
        protected void grdCurrentAssignment_RowDrop(object sender, GridDragDropEventArgs e)
        {
            if (string.IsNullOrEmpty(e.HtmlElement))
            {
                if (e.DraggedItems[0].OwnerGridID == grdCurrentAssignment.ClientID)
                {
                    // items are drag from Current Assignment to All Media grid 
                    if ((e.DestDataItem == null && AllAvailableMedia.Count == 0) ||
                        e.DestDataItem != null && e.DestDataItem.OwnerGridID == grdAvailableMedia.ClientID)
                    {
                        IList<clsAssignment> allAvailableMedia = AllAvailableMedia;
                        IList<clsAssignment> currentAssignmentMedia = CurrentAssignmentMedia;
                        int destinationIndex = -1;
                        if (e.DestDataItem != null)
                        {
                            clsAssignment order = GetOrder(allAvailableMedia, (int)e.DestDataItem.GetDataKeyValue("media_id"));
                            destinationIndex = (order != null) ? allAvailableMedia.IndexOf(order) : -1;
                        }
  
  
                        foreach (GridDataItem draggedItem in e.DraggedItems)
                        {
                            clsAssignment tmpOrder = GetOrder(currentAssignmentMedia, (int)draggedItem.GetDataKeyValue("media_id"));
  
                            if (tmpOrder != null)
                            {
                                if (destinationIndex > -1)
                                {
                                    if (e.DropPosition == GridItemDropPosition.Below)
                                    {
                                        destinationIndex += 1;
                                    }
                                    allAvailableMedia.Insert(destinationIndex, tmpOrder);
                                }
                                else
                                {
                                    allAvailableMedia.Add(tmpOrder);
                                }
  
                                currentAssignmentMedia.Remove(tmpOrder);
                            }
                        }
  
                        AllAvailableMedia = allAvailableMedia;
                        CurrentAssignmentMedia = currentAssignmentMedia;
                        grdCurrentAssignment.Rebind();
                        grdAvailableMedia.Rebind();
                    }
                    else if (e.DestDataItem != null && e.DestDataItem.OwnerGridID == grdCurrentAssignment.ClientID)
                    {
                        //reorder items in pending  grid
                        IList<clsAssignment> pendingOrders = CurrentAssignmentMedia;
                        clsAssignment order = GetOrder(pendingOrders, (int)e.DestDataItem.GetDataKeyValue("media_id"));
                        int destinationIndex = pendingOrders.IndexOf(order);
  
                        if (e.DropPosition == GridItemDropPosition.Above && e.DestDataItem.ItemIndex > e.DraggedItems[0].ItemIndex)
                        {
                            destinationIndex -= 1;
                        }
                        if (e.DropPosition == GridItemDropPosition.Below && e.DestDataItem.ItemIndex < e.DraggedItems[0].ItemIndex)
                        {
                            destinationIndex += 1;
                        }
  
                        List<clsAssignment> ordersToMove = new List<clsAssignment>();
                        foreach (GridDataItem draggedItem in e.DraggedItems)
                        {
                            clsAssignment tmpOrder = GetOrder(pendingOrders, (int)draggedItem.GetDataKeyValue("media_id"));
                            if (tmpOrder != null)
                                ordersToMove.Add(tmpOrder);
                        }
  
                        foreach (clsAssignment orderToMove in ordersToMove)
                        {
                            pendingOrders.Remove(orderToMove);
                            pendingOrders.Insert(destinationIndex, orderToMove);
                        }
                        CurrentAssignmentMedia = pendingOrders;
                        grdCurrentAssignment.Rebind();
  
                        int destinationItemIndex = destinationIndex - (grdCurrentAssignment.PageSize * grdCurrentAssignment.CurrentPageIndex);
                        e.DestinationTableView.Items[destinationItemIndex].Selected = true;
                    }
                }
            }
        }
  
        //protected void grdAvailableMedia_RowDrop(object sender, GridDragDropEventArgs e)
        //{
        //    if (!string.IsNullOrEmpty(e.HtmlElement) && e.HtmlElement == "trashCan")
        //    {
        //        IList<clsAssignment> shippedOrders = ShippedOrders;
        //        bool deleted = false;
        //        foreach (GridDataItem draggedItem in e.DraggedItems)
        //        {
        //            clsAssignment tmpOrder = GetOrder(shippedOrders, (int)draggedItem.GetDataKeyValue("media_id"));
  
        //            if (tmpOrder != null)
        //            {
        //                shippedOrders.Remove(tmpOrder);
        //                deleted = true;
        //            }
        //        }
        //        if (deleted)
        //        {
        //            msg.Visible = true;
        //        }
        //        ShippedOrders = shippedOrders;
        //        grdAvailableMedia.Rebind();
        //    }
        //}
  
        protected void grdAvailableMedia_RowDrop(object sender, GridDragDropEventArgs e)
        {
            if (string.IsNullOrEmpty(e.HtmlElement))
            {
                if (e.DraggedItems[0].OwnerGridID == grdAvailableMedia.ClientID)
                {
                    // items are drag from pending to shipped grid 
                    if ((e.DestDataItem == null && CurrentAssignmentMedia.Count == 0) ||
                        e.DestDataItem != null && e.DestDataItem.OwnerGridID == grdCurrentAssignment.ClientID)
                    {
                        IList<clsAssignment> allAvailableMedia = AllAvailableMedia;
                        IList<clsAssignment> currentAssignmentMedia = CurrentAssignmentMedia;
                        int destinationIndex = -1;
                        if (e.DestDataItem != null)
                        {
                            clsAssignment order = GetOrder(currentAssignmentMedia, (int)e.DestDataItem.GetDataKeyValue("media_id"));
                            destinationIndex = (order != null) ? currentAssignmentMedia.IndexOf(order) : -1;
                        }
  
  
                        foreach (GridDataItem draggedItem in e.DraggedItems)
                        {
                            clsAssignment tmpOrder = GetOrder(allAvailableMedia, (int)draggedItem.GetDataKeyValue("media_id"));
  
                            if (tmpOrder != null)
                            {
                                if (destinationIndex > -1)
                                {
                                    if (e.DropPosition == GridItemDropPosition.Below)
                                    {
                                        destinationIndex += 1;
                                    }
                                    currentAssignmentMedia.Insert(destinationIndex, tmpOrder);
                                }
                                else
                                {
                                    currentAssignmentMedia.Add(tmpOrder);
                                }
  
                                allAvailableMedia.Remove(tmpOrder);
                            }
                        }
  
                        AllAvailableMedia = allAvailableMedia;
                        CurrentAssignmentMedia = currentAssignmentMedia;
                        grdCurrentAssignment.Rebind();
                        grdAvailableMedia.Rebind();
                    }
                    else if (e.DestDataItem != null && e.DestDataItem.OwnerGridID == grdAvailableMedia.ClientID)
                    {
                        //reorder items in pending  grid
                        IList<clsAssignment> pendingOrders = AllAvailableMedia;
                        clsAssignment order = GetOrder(pendingOrders, (int)e.DestDataItem.GetDataKeyValue("media_id"));
                        int destinationIndex = pendingOrders.IndexOf(order);
  
                        if (e.DropPosition == GridItemDropPosition.Above && e.DestDataItem.ItemIndex > e.DraggedItems[0].ItemIndex)
                        {
                            destinationIndex -= 1;
                        }
                        if (e.DropPosition == GridItemDropPosition.Below && e.DestDataItem.ItemIndex < e.DraggedItems[0].ItemIndex)
                        {
                            destinationIndex += 1;
                        }
  
                        List<clsAssignment> ordersToMove = new List<clsAssignment>();
                        foreach (GridDataItem draggedItem in e.DraggedItems)
                        {
                            clsAssignment tmpOrder = GetOrder(pendingOrders, (int)draggedItem.GetDataKeyValue("media_id"));
                            if (tmpOrder != null)
                                ordersToMove.Add(tmpOrder);
                        }
  
                        foreach (clsAssignment orderToMove in ordersToMove)
                        {
                            pendingOrders.Remove(orderToMove);
                            pendingOrders.Insert(destinationIndex, orderToMove);
                        }
                        AllAvailableMedia = pendingOrders;
                        grdAvailableMedia.Rebind();
  
  
                        int destinationItemIndex = destinationIndex - (grdAvailableMedia.PageSize * grdAvailableMedia.CurrentPageIndex);
                        e.DestinationTableView.Items[destinationItemIndex].Selected = true;
                    }
                }
            }
        }
  
        #endregion
  
  
        #region Nested type: Order
  
        protected class clsAssignment
        {
            private int _assignment_id;
            private int _media_id;
            //private string _mediaSection;
            //private string _sku;
            //private int _mediaSequence;
            //private string _mediaType;
            private string _mediaTitle;
            //private string _mediaRelatedProduct;
            //private string _mediaFile;
            //private string _mediaFlashEmbedCode;
            //private string _mediaIpadEmbedCode;
            //private int _mediaInternapId;
  
            //public clsAssignment(int assignment_id, int media_id, string mediaSection, string sku, int mediaSequence, string mediaType,
            //                string mediaTitle, string mediaRelatedProduct, string mediaFile, string mediaFlashEmbedCode, string mediaIpadEmbedCode,
            //                    int mediaInternapId)
            //{
            //    _assignment_id = assignment_id;
            //    _media_id = media_id;
            //    _mediaSection = mediaSection;
            //    _sku = sku;
            //    _mediaSequence = mediaSequence;
            //    _mediaType = mediaType;
            //    _mediaTitle = mediaTitle;
            //    _mediaRelatedProduct = mediaRelatedProduct;
            //    _mediaFile = mediaFile;
            //    _mediaFlashEmbedCode = mediaFlashEmbedCode;
            //    _mediaIpadEmbedCode = mediaIpadEmbedCode;
            //    _mediaInternapId = mediaInternapId;
            //}
  
            public clsAssignment(int assignment_id, int media_id, string mediaTitle)
            {
                _assignment_id = assignment_id;
                _media_id = media_id;
                _mediaTitle = mediaTitle;
            }
  
            public int assignment_id
            {
                get { return _assignment_id; }
            }
  
            public int media_id
            {
                get { return _media_id; }
            }
  
            //public string mediaSection
            //{
            //    get { return _mediaSection; }
            //}
  
            //public string sku
            //{
            //    get { return _sku; }
            //}
            //public int mediaSequence
            //{
            //    get { return _mediaSequence; }
            //}
            //public string mediaType
            //{
            //    get { return _mediaType; }
            //}
            public string mediaTitle
            {
                get { return _mediaTitle;}
            }
            //public string mediaRelatedProduct
            //{
            //    get { return _mediaRelatedProduct;}
            //}
            //public string mediaFile
            //{
            //    get { return _mediaFile;}
            //}
            //public string mediaFlashEmbedCode
            //{
            //    get { return _mediaFlashEmbedCode;}
            //}
            //public string mediaIpadEmbedCode
            //{
            //    get { return _mediaIpadEmbedCode; }
            //}
            //public int mediaInternapId 
            //{
            //    get { return _mediaInternapId; }
            //}
  
        }
  
        #endregion
    }
  
}
Here's what I did that seems to work, of course you'll have to change the database definitions
0
Ben
Top achievements
Rank 1
answered on 20 Oct 2010, 07:02 PM
Thankd David. Let me try ...
0
Ben
Top achievements
Rank 1
answered on 20 Oct 2010, 08:12 PM
Its not working David,
My second radgid(grdShippedOrder) should be empty. Just drag Item from grdPendingOrder and roll back. So do I need to call the function, like GetOrder(),  for "obj"  inprotected IList<clsAssignment> CurrentAssignmentMedia.
My first grid gets data from a table. so I have written "select * from table1"
0
Ben
Top achievements
Rank 1
answered on 20 Oct 2010, 08:30 PM
Thanks David
Now its working...I didn't change script before.
One more question. What event I will use for delete function.. OnRowDrop used for grid row drop(). Which one I can use for row delete.

0
Iana Tsolova
Telerik team
answered on 25 Oct 2010, 03:58 PM
Hello Ben,

The DeleteCommand/ItemCommand event of the grid fires when you delete an item by pressing a button with CommandName Delete. You can check out this help article for more information.

All the best,
Iana
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
Ben
Top achievements
Rank 1
answered on 25 Oct 2010, 10:15 PM
Hi Lana
Thank you for your answer.
Now there is an other issue. I want to change my database table. I just changed select command with new table name and its columns.

command.CommandText =

 

"SELECT PKGID, CTRLNUM, DESCR, DATEDUE, COMMENTS FROM PWOPENITEMS"; and changed the columns names within while loop and changed appropriate values in Class Order. But still I am getting previous table values in the grdPenidngOrder grid.
How can I get the changed database values in the grid.

 

0
Iana Tsolova
Telerik team
answered on 26 Oct 2010, 10:39 AM
Hi Ben,

Can you try rebinding the grid and see if it works?
I also suggest that you check out this article for more information on changing RadGrid structure after postback.

Sincerely yours,
Iana
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
Tags
Grid
Asked by
Ben
Top achievements
Rank 1
Answers by
David
Top achievements
Rank 1
Ben
Top achievements
Rank 1
Iana Tsolova
Telerik team
Share this question
or