private string ResetSortToColumn(string sSortField)
        {
            if (SortField.Length < 1)
            {
                SortField = sSortField;
                SortDir   = string.Empty;
            }
            else
            {
                if (SortField.ToLowerInvariant() != sSortField.ToLowerInvariant())
                {
                    SortDir = string.Empty;                      //previous sort not the same field, force ASC
                }
                SortField = sSortField;
            }

            if (SortDir.Trim().ToUpperInvariant().IndexOf("ASC") < 0)
            {
                SortDir = "ASC";
            }
            else
            {
                SortDir = "DESC";
            }
            sSortField = SortField + "   " + SortDir;
            return(sSortField);
        }
        public List <T> SortDataList <T>(List <T> d)
        {
            List <T>        query         = null;
            IEnumerable <T> myEnumerables = d.AsEnumerable();

            if (SortDir.Trim().IndexOf("ASC") < 0)
            {
                query = (from enu in myEnumerables
                         orderby GetPropertyValue(enu, SortField) descending
                         select enu).ToList <T>();
            }
            else
            {
                query = (from enu in myEnumerables
                         orderby GetPropertyValue(enu, SortField) ascending
                         select enu).ToList <T>();
            }

            return(query.ToList <T>());
        }