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.
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
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">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
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
}
}
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" in
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" in
protected
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.
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
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
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.
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
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
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