コード例 #1
0
ファイル: CGrid.cs プロジェクト: Chandradev819/Grid.Blazor
        public void AddQueryString(string parameterName, string parameterValue)
        {
            if (string.IsNullOrEmpty(parameterName))
            {
                throw new ArgumentException("parameterName");
            }
            if (parameterName.Equals(QueryStringFilterSettings.DefaultTypeQueryParameter))
            {
                throw new ArgumentException("parameterName cannot be " + QueryStringFilterSettings.DefaultTypeQueryParameter);
            }

            if (_query.ContainsKey(parameterName))
            {
                var parameterValues = _query[parameterName].ToList();
                parameterValues.Add(parameterValue);
                _query[parameterName] = new StringValues(parameterValues.ToArray());
            }
            else
            {
                _query.Add(parameterName, parameterValue);
            }

            _settings = new QueryStringGridSettingsProvider(_query);
            _columnsCollection.SortSettings = _settings.SortSettings;
            _columnsCollection.UpdateColumnsSorting();
            ((GridPager)_pager).Query = _query;
        }
コード例 #2
0
ファイル: SGrid.cs プロジェクト: ravselj/Grid.Blazor
        public SGrid(IEnumerable <T> items, IQueryCollection query)
            : base(items)
        {
            #region init default properties

            Query = QueryDictionary <StringValues> .Convert(query);

            //set up sort settings:
            _settings = new QueryStringGridSettingsProvider(Query);

            Sanitizer     = new Sanitizer();
            EmptyGridText = Strings.DefaultGridEmptyText;
            Language      = Strings.Lang;

            _currentSortItemsProcessor   = new SortGridItemsProcessor <T>(this, _settings.SortSettings);
            _currentFilterItemsProcessor = new FilterGridItemsProcessor <T>(this, _settings.FilterSettings);
            _currentSearchItemsProcessor = new SearchGridItemsProcessor <T>(this, _settings.SearchSettings);
            _currentTotalsItemsProcessor = new TotalsGridItemsProcessor <T>(this);
            AddItemsPreProcessor(_currentFilterItemsProcessor);
            AddItemsPreProcessor(_currentSearchItemsProcessor);
            InsertItemsProcessor(0, _currentSortItemsProcessor);
            SetTotalsProcessor(_currentTotalsItemsProcessor);

            _annotations = new GridAnnotationsProvider();

            #endregion init default properties

            //Set up column collection:
            _columnBuilder     = new DefaultColumnBuilder <T>(this, _annotations);
            _columnsCollection = new GridColumnCollection <T>(this, _columnBuilder, _settings.SortSettings);
            RenderOptions      = new GridRenderOptions();

            ApplyGridSettings();
        }
コード例 #3
0
ファイル: CGrid.cs プロジェクト: Chandradev819/Grid.Blazor
        public CGrid(Func <QueryDictionary <StringValues>, ItemsDTO <T> > dataService,
                     QueryDictionary <StringValues> query, bool renderOnlyRows,
                     Action <IGridColumnCollection <T> > columns = null, CultureInfo cultureInfo = null)
        {
            _dataService = dataService;

            Items = new List <T>(); //response.Items;

            Url    = null;
            _query = query;

            //set up sort settings:
            _settings = new QueryStringGridSettingsProvider(_query);
            Sanitizer = new Sanitizer();
            if (cultureInfo != null)
            {
                Strings.CultureInfo = cultureInfo;
            }
            EmptyGridText = Strings.DefaultGridEmptyText;
            Language      = Strings.Lang;

            _annotations = new GridAnnotaionsProvider();

            //Set up column collection:
            _columnBuilder     = new DefaultColumnBuilder <T>(this, _annotations);
            _columnsCollection = new GridColumnCollection <T>(this, _columnBuilder, _settings.SortSettings);
            ComponentOptions   = new GridOptions();

            ApplyGridSettings();

            Pager = new GridPager(query);

            ComponentOptions.RenderRowsOnly = renderOnlyRows;
            columns?.Invoke(Columns);
        }
コード例 #4
0
        public Grid(IQueryable <T> items)
            : base(items)
        {
            #region init default properties

            //set up sort settings:
            _settings     = new QueryStringGridSettingsProvider();
            Sanitizer     = new Sanitizer();
            EmptyGridText = Strings.DefaultGridEmptyText;
            Language      = Strings.Lang;

            _currentSortItemsProcessor   = new SortGridItemsProcessor <T>(this, _settings.SortSettings);
            _currentFilterItemsProcessor = new FilterGridItemsProcessor <T>(this, _settings.FilterSettings);
            AddItemsPreProcessor(_currentFilterItemsProcessor);
            InsertItemsProcessor(0, _currentSortItemsProcessor);

            _annotaions = new GridAnnotaionsProvider();

            #endregion

            //Set up column collection:
            _columnBuilder     = new DefaultColumnBuilder <T>(this, _annotaions);
            _columnsCollection = new GridColumnCollection <T>(_columnBuilder, _settings.SortSettings);
            RenderOptions      = new GridRenderOptions();

            ApplyGridSettings();
        }
コード例 #5
0
ファイル: CGrid.cs プロジェクト: bisaga/Grid.Blazor
        public void AddFilterParameter(string columnName, string filterType, string filterValue)
        {
            var filters = _query.Get(QueryStringFilterSettings.DefaultTypeQueryParameter).ToArray();

            if (filters == null)
            {
                _query.Add(QueryStringFilterSettings.DefaultTypeQueryParameter,
                           columnName + QueryStringFilterSettings.FilterDataDelimeter +
                           filterType + QueryStringFilterSettings.FilterDataDelimeter +
                           filterValue);
            }
            else
            {
                var newFilters = filters.Where(r => !r.ToLower().StartsWith(columnName.ToLower()
                                                                            + QueryStringFilterSettings.FilterDataDelimeter)).ToList();
                newFilters.Add(columnName + QueryStringFilterSettings.FilterDataDelimeter +
                               filterType + QueryStringFilterSettings.FilterDataDelimeter + filterValue);
                _query[QueryStringFilterSettings.DefaultTypeQueryParameter] =
                    new StringValues(newFilters.ToArray());
            }

            AddClearInitFilters(columnName);

            _settings = new QueryStringGridSettingsProvider(_query);
            _columnsCollection.SortSettings = _settings.SortSettings;
            _columnsCollection.UpdateColumnsSorting();
            ((GridPager)_pager).Query = _query;
        }
コード例 #6
0
ファイル: CGrid.cs プロジェクト: Chandradev819/Grid.Blazor
        public void AddFilterParameter(IGridColumn column, FilterCollection filters)
        {
            var columnFilters = _query.Get(QueryStringFilterSettings.DefaultTypeQueryParameter).ToArray();

            if (ComponentOptions.AllowMultipleFilters)
            {
                if (columnFilters == null)
                {
                    foreach (var filter in filters)
                    {
                        _query.Add(QueryStringFilterSettings.DefaultTypeQueryParameter,
                                   column.Name + QueryStringFilterSettings.FilterDataDelimeter +
                                   filter.Type + QueryStringFilterSettings.FilterDataDelimeter +
                                   filter.Value);
                    }
                }
                else
                {
                    var newFilters = columnFilters.Where(r => !r.ToLower().StartsWith(column.Name.ToLower()
                                                                                      + QueryStringFilterSettings.FilterDataDelimeter)).ToList();
                    foreach (var filter in filters)
                    {
                        newFilters.Add(column.Name + QueryStringFilterSettings.FilterDataDelimeter +
                                       filter.Type + QueryStringFilterSettings.FilterDataDelimeter + filter.Value);
                    }
                    _query[QueryStringFilterSettings.DefaultTypeQueryParameter] =
                        new StringValues(newFilters.ToArray());
                }
            }
            else
            {
                RemoveQueryParameter(QueryStringFilterSettings.DefaultTypeQueryParameter);

                if (filters.Count() > 0)
                {
                    _query.Add(QueryStringFilterSettings.DefaultTypeQueryParameter,
                               column.Name + QueryStringFilterSettings.FilterDataDelimeter +
                               filters.First().Type + QueryStringFilterSettings.FilterDataDelimeter +
                               filters.First().Value);
                }
            }

            AddClearInitFilters(column);

            _settings = new QueryStringGridSettingsProvider(_query);
            _columnsCollection.SortSettings = _settings.SortSettings;
            _columnsCollection.UpdateColumnsSorting();
            ((GridPager)_pager).Query = _query;
        }
コード例 #7
0
ファイル: CGrid.cs プロジェクト: Chandradev819/Grid.Blazor
        public void RemoveQueryParameter(string parameterName)
        {
            if (string.IsNullOrEmpty(parameterName))
            {
                throw new ArgumentException("parameterName");
            }

            if (_query.ContainsKey(parameterName))
            {
                _query.Remove(parameterName);

                _settings = new QueryStringGridSettingsProvider(_query);
                _columnsCollection.SortSettings = _settings.SortSettings;
                _columnsCollection.UpdateColumnsSorting();
                ((GridPager)_pager).Query = _query;
            }
        }
コード例 #8
0
ファイル: CGrid.cs プロジェクト: ravselj/Grid.Blazor
        public CGrid(string url, IQueryDictionary <StringValues> query, bool renderOnlyRows,
                     Action <IGridColumnCollection <T> > columns = null, CultureInfo cultureInfo = null)
        {
            _dataService      = null;
            _dataServiceAsync = null;

            Items          = new List <T>();
            _selectedItems = new List <object>();

            _httpClient = null;
            Url         = url;
            _query      = query as QueryDictionary <StringValues>;

            //set up sort settings:
            _settings = new QueryStringGridSettingsProvider(_query);
            Sanitizer = new Sanitizer();
            if (cultureInfo != null)
            {
                Strings.Culture = cultureInfo;
            }
            EmptyGridText = Strings.DefaultGridEmptyText;
            Language      = Strings.Lang;

            _annotations = new GridAnnotationsProvider();

            //Set up column collection:
            _columnBuilder     = new DefaultColumnBuilder <T>(this, _annotations);
            _columnsCollection = new GridColumnCollection <T>(this, _columnBuilder, _settings.SortSettings);
            ComponentOptions   = new GridOptions();

            ApplyGridSettings();

            Pager = new GridPager(query);

            ComponentOptions.RenderRowsOnly = renderOnlyRows;
            columns?.Invoke(Columns);

            Mode          = GridMode.Grid;
            CreateEnabled = false;
            ReadEnabled   = false;
            UpdateEnabled = false;
            DeleteEnabled = false;
        }
コード例 #9
0
ファイル: CGrid.cs プロジェクト: Chandradev819/Grid.Blazor
        public void RemoveFilterParameter(IGridColumn column)
        {
            var filters = _query.Get(QueryStringFilterSettings.DefaultTypeQueryParameter).ToArray();

            if (filters != null)
            {
                var newFilters = filters.Where(r => !r.ToLower().StartsWith(column.Name.ToLower()
                                                                            + QueryStringFilterSettings.FilterDataDelimeter));
                _query[QueryStringFilterSettings.DefaultTypeQueryParameter] =
                    new StringValues(newFilters.ToArray());
            }

            AddClearInitFilters(column);

            _settings = new QueryStringGridSettingsProvider(_query);
            _columnsCollection.SortSettings = _settings.SortSettings;
            _columnsCollection.UpdateColumnsSorting();
            ((GridPager)_pager).Query = _query;
        }
コード例 #10
0
ファイル: CGrid.cs プロジェクト: Chandradev819/Grid.Blazor
        public void RemoveQueryString(string parameterName, string parameterValue)
        {
            if (string.IsNullOrEmpty(parameterName))
            {
                throw new ArgumentException("parameterName");
            }

            if (_query.ContainsKey(parameterName))
            {
                var parameterValues = _query[parameterName].ToList();
                parameterValues.Remove(parameterValue);
                _query[parameterName] = new StringValues(parameterValues.ToArray());

                _settings = new QueryStringGridSettingsProvider(_query);
                _columnsCollection.SortSettings = _settings.SortSettings;
                _columnsCollection.UpdateColumnsSorting();
                ((GridPager)_pager).Query = _query;
            }
        }
コード例 #11
0
ファイル: SGridCore.cs プロジェクト: gustavnavar/Grid.Blazor
        public SGridCore(IEnumerable <T> items, QueryDictionary <StringValues> query, IColumnBuilder <T> columnBuilder = null)
            : this()
        {
            BeforeItems = items.AsQueryable();

            #region init default properties

            Query = query;

            //set up sort settings:
            _settings = new QueryStringGridSettingsProvider(Query);

            Sanitizer     = new Sanitizer();
            EmptyGridText = Strings.DefaultGridEmptyText;
            Language      = Strings.Lang;

            _currentSortItemsProcessor   = new SortGridItemsProcessor <T>(this, _settings.SortSettings);
            _currentFilterItemsProcessor = new FilterGridItemsProcessor <T>(this, _settings.FilterSettings);
            _currentSearchItemsProcessor = new SearchGridItemsProcessor <T>(this, _settings.SearchSettings);
            _currentTotalsItemsProcessor = new TotalsGridItemsProcessor <T>(this);
            AddItemsPreProcessor(_currentFilterItemsProcessor);
            AddItemsPreProcessor(_currentSearchItemsProcessor);
            InsertItemsProcessor(0, _currentSortItemsProcessor);
            SetTotalsProcessor(_currentTotalsItemsProcessor);

            #endregion init default properties

            _annotations = new GridCoreAnnotationsProvider();

            //Set up column collection:
            if (columnBuilder == null)
            {
                _columnBuilder = new DefaultColumnCoreBuilder <T>(this, _annotations);
            }
            else
            {
                _columnBuilder = columnBuilder;
            }
            _columnsCollection = new GridColumnCollection <T>(this, _columnBuilder, _settings.SortSettings);
            RenderOptions      = new GridRenderOptions();

            ApplyGridSettings();
        }
コード例 #12
0
        private CGrid(HttpClient httpClient, string url,
                      Func <QueryDictionary <StringValues>, ItemsDTO <T> > dataService,
                      Func <QueryDictionary <StringValues>, Task <ItemsDTO <T> > > dataServiceAsync,
                      IQueryDictionary <StringValues> query, bool renderOnlyRows,
                      Action <IGridColumnCollection <T> > columns = null, CultureInfo cultureInfo = null,
                      IColumnBuilder <T> columnBuilder            = null)
        {
            _dataServiceAsync = dataServiceAsync;
            _dataService      = dataService;
            _selectedItems    = new List <object>();
            Items             = new List <T>(); //response.Items;

            Url         = url;
            _httpClient = httpClient;
            _query      = query as QueryDictionary <StringValues>;

            //set up sort settings:
            _settings = new QueryStringGridSettingsProvider(_query);
            Sanitizer = new Sanitizer();
            if (cultureInfo != null)
            {
                CultureInfo.CurrentCulture = cultureInfo;
            }
            EmptyGridText = Strings.DefaultGridEmptyText;
            Language      = Strings.Lang;

            _currentPagerODataProcessor  = new PagerGridODataProcessor <T>(this);
            _currentSortODataProcessor   = new SortGridODataProcessor <T>(this, _settings.SortSettings);
            _currentFilterODataProcessor = new FilterGridODataProcessor <T>(this, _settings.FilterSettings,
                                                                            _settings.SearchSettings);
            _currentSearchODataProcessor = new SearchGridODataProcessor <T>(this, _settings.SearchSettings);
            _currentExpandODataProcessor = new ExpandGridODataProcessor <T>(this);

            _annotations = new GridAnnotationsProvider();

            //Set up column collection:
            if (columnBuilder == null)
            {
                _columnBuilder = new DefaultColumnBuilder <T>(this, _annotations);
            }
            else
            {
                _columnBuilder = columnBuilder;
            }
            _columnsCollection = new GridColumnCollection <T>(this, _columnBuilder, _settings.SortSettings);
            ComponentOptions   = new GridOptions();

            ApplyGridSettings();

            Pager = new GridPager(query);

            ComponentOptions.RenderRowsOnly = renderOnlyRows;
            columns?.Invoke(Columns);

            Mode          = GridMode.Grid;
            CreateEnabled = false;
            ReadEnabled   = false;
            UpdateEnabled = false;
            DeleteEnabled = false;

            ButtonComponents = new QueryDictionary <(string Label, Nullable <MarkupString> Content, Type ComponentType,
                                                     IList <Action <object> > Actions, IList <Func <object, Task> > Functions, object Object)>();
        }