Esempio n. 1
0
        /// <summary>
        /// Converts the given filterValue to corresponding string formats.
        /// </summary>
        /// <param name="filterValue">Value that want to convert to corresponding type format.</param>
        /// <returns>Returns the converted text.</returns>
        internal static string GetFormatedFilterText(this GridColumn gridColumn, object filterValue)
        {
            string filterText    = string.Empty;
            string filterRowType = gridColumn.GetRowFilterType();

            if (filterRowType == "Numeric")
            {
#if WPF
                decimal columnValue;
                decimal.TryParse(filterValue.ToString(), out columnValue);
                int decimalDigits = 0;
                if (gridColumn is GridNumericColumn)
                {
                    decimalDigits = (gridColumn as GridNumericColumn).NumberDecimalDigits;
                }
                else if (gridColumn is GridPercentColumn)
                {
                    decimalDigits = (gridColumn as GridPercentColumn).PercentDecimalDigits;
                }
                else if (gridColumn is GridCurrencyColumn)
                {
                    decimalDigits = (gridColumn as GridCurrencyColumn).CurrencyDecimalDigits;
                }
                var numericNumberFormatInfo = new NumberFormatInfo
                {
                    NumberDecimalDigits = decimalDigits,
                    NumberGroupSizes    = new int[0]
                };
                filterText = columnValue.ToString("N", numericNumberFormatInfo);
#else
                Double columnValue;
                if (gridColumn is GridNumericColumn)
                {
                    Decimal columnvalue;
                    var     column = gridColumn as GridNumericColumn;
                    if (column.ParsingMode == Parsers.Double)
                    {
                        Double.TryParse(filterValue.ToString(), out columnValue);
                        if (string.Equals(column.FormatString, "P"))
                        {
                            columnValue /= 100;
                        }
                        return(columnValue.ToString(column.FormatString, CultureInfo.CurrentUICulture));
                    }
                    else
                    {
                        Decimal.TryParse(filterValue.ToString(), out columnvalue);
                        if (string.Equals(column.FormatString, "P"))
                        {
                            columnvalue /= 100;
                        }
                        return(columnvalue.ToString(column.FormatString, CultureInfo.CurrentUICulture));
                    }
                }
                filterText = filterValue.ToString();
#endif
            }
#if WPF
            else if (filterRowType == "DateTime" && gridColumn is GridDateTimeColumn)
            {
                DateTime _columnValue;
                var      column = gridColumn as GridDateTimeColumn;
                if (filterValue is DateTime)
                {
                    _columnValue = (DateTime)filterValue;
                }
                else
                {
                    DateTime.TryParse(filterValue.ToString(), column.DateTimeFormat,
                                      DateTimeStyles.AdjustToUniversal, out _columnValue);
                }
                filterText = FilterHelpers.DateTimeFormatString(column, _columnValue);
            }
#endif
            else
            {
                filterText = filterValue.ToString();
            }

            return(filterText);
        }