Beispiel #1
0
        ///<summary>
        /// FilterData
        ///</summary>
        ///<param name="panel"></param>
        internal static void FilterData(GridPanel panel)
        {
            if (_lockFilter == true)
                return;

            if (panel.SuperGrid.DoDataFilteringStartEvent(panel) == false)
            {
                _lockFilter = true;

                try
                {
                    if (panel.EnableFiltering == true &&
                        panel.FilterLevel != FilterLevel.None)
                    {
                        bool rowFiltered = IsRowFiltered(panel);
                        bool colFiltered = IsColumnFiltered(panel);

                        if (rowFiltered == true || colFiltered == true)
                        {
                            if (rowFiltered == true)
                                rowFiltered = UpdateRowFilter(panel);

                            if (colFiltered == true)
                                UpdateColumnFilter(panel);

                            UpdateFilterState(panel, rowFiltered, colFiltered);

                            return;
                        }
                    }

                    UpdateFilterState(panel, false, false);
                }
                finally
                {
                    _lockFilter = false;

                    panel.UpdateVisibleRowCount();
                    panel.SuperGrid.DoDataFilteringCompleteEvent(panel);
                }
            }
            else
            {
                panel.UpdateVisibleRowCount();
            }
        }