public void SerializeTo(string key, IClientSideObjectWriter writer)
 {
     if (Enabled)
     {
         writer.Append("sortMode", SortMode == GridSortMode.MultipleColumn ? "multi" : "single");
         if (grid.DataProcessor.SortDescriptors.Any())
         {
             writer.Append("orderBy", GridDescriptorSerializer.Serialize(grid.DataProcessor.SortDescriptors));
         }
     }
 }
        public string GetSortUrl()
        {
            IList <SortDescriptor> orderBy    = new List <SortDescriptor>(Grid.DataProcessor.SortDescriptors);
            SortDescriptor         descriptor = orderBy.SingleOrDefault(c => c.Member.IsCaseInsensitiveEqual(Member));

            ListSortDirection?oldDirection = null;

            if (descriptor != null)
            {
                oldDirection = descriptor.SortDirection;

                ListSortDirection?newDirection = oldDirection.Next();

                if (newDirection == null)
                {
                    orderBy.Remove(descriptor);
                }
                else
                {
                    if (Grid.Sorting.SortMode == GridSortMode.SingleColumn)
                    {
                        orderBy.Clear();
                        orderBy.Add(new SortDescriptor {
                            SortDirection = newDirection.Value, Member = descriptor.Member
                        });
                    }
                    else
                    {
                        orderBy[orderBy.IndexOf(descriptor)] = new SortDescriptor {
                            SortDirection = newDirection.Value, Member = descriptor.Member
                        };
                    }
                }
            }
            else
            {
                if (Grid.Sorting.SortMode == GridSortMode.SingleColumn)
                {
                    orderBy.Clear();
                }

                orderBy.Add(new SortDescriptor {
                    Member = Member, SortDirection = ListSortDirection.Ascending
                });
            }

            return(Grid.UrlBuilder.SelectUrl(GridUrlParameters.OrderBy, GridDescriptorSerializer.Serialize(orderBy)));
        }
Example #3
0
 public string SerializeExpression()
 {
     return(GridDescriptorSerializer.Serialize(grid.DataProcessor.GroupDescriptors));
 }