Esempio n. 1
0
    protected void OnGridInvoiceDetails_RowDrop(object sender, GridDragDropEventArgs e)
    {
        if (string.IsNullOrEmpty(e.HtmlElement))
        {
            if (e.DraggedItems.Count >0 && e.DestDataItem != null) //[0].OwnerGridID == gridInvoiceDetails.ID && e.DestDataItem != null && e.DestDataItem.OwnerGridID == gridInvoiceDetails.ClientID)
            {
                if (!string.IsNullOrEmpty(Request.QueryString["InvoiceIdPK"]))
                {
                    string[] args = Request.QueryString["InvoiceIdPK"].Split('-');
                    if(args.Length == 3)
                    {
                        List<InvoiceDetails> detailList = new InvoiceDetailsRepository().GetInvoiceDetailsOfInvoice(
                                                                                        Convert.ToInt32(args[0]),
                                                                                        args[1],
                                                                                        Convert.ToInt32(args[2]),
                                                                                        null) as List<InvoiceDetails>;
                        if (detailList.Count > 0)
                        {
                            InvoiceDetails invoiceDetail = GetInvoiceDetailFromList(detailList, (string)e.DestDataItem.GetDataKeyValue("InvoiceDetailsId"));
                            int destinationIndex = detailList.IndexOf(invoiceDetail);

                            List<InvoiceDetails> listToMove = new List<InvoiceDetails>();
                            foreach (GridDataItem dragItem in e.DraggedItems)
                            {
                                InvoiceDetails detail = GetInvoiceDetailFromList(detailList, (string)dragItem.GetDataKeyValue("InvoiceDetailsId"));

                                detailList.Remove(detail);
                                detailList.Insert(destinationIndex, detail);
                            }
                            //save the idLignNumber into database
                            for (int i = 0; i < detailList.Count; i++)
                            {
                                InvoiceDetails saveItem = detailList[i];
                                saveItem.IdLigneNumber = i + 1;
                                new InvoiceDetailsRepository().UpdateInvoiceDetails(saveItem);
                            }
                        }

                        gridInvoiceDetails.Rebind();
                    }
                }
            }
        }
        /*
         if (e.DestDataItem != null && e.DestDataItem.OwnerGridID == grdPendingOrders.ClientID)
        {
            //reorder items in pending  grid
            IList<Order> pendingOrders = PendingOrders;
            Order order = GetOrder(pendingOrders, (int)e.DestDataItem.GetDataKeyValue("OrderId"));
            int destinationIndex = pendingOrders.IndexOf(order);

            List<Order> ordersToMove = new List<Order>();
            foreach (GridDataItem draggedItem in e.DraggedItems)
            {
                Order tmpOrder = GetOrder(pendingOrders, (int)draggedItem.GetDataKeyValue("OrderId"));
                if (tmpOrder != null)
                    ordersToMove.Add(tmpOrder);
            }

            foreach (Order orderToMove in ordersToMove)
            {
                pendingOrders.Remove(orderToMove);
                pendingOrders.Insert(destinationIndex, orderToMove);
            }
            PendingOrders = pendingOrders;
            grdPendingOrders.Rebind();
            e.DestDataItem.Selected = true;
        }
         */
    }