Beispiel #1
0
        private void Dgr_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (data.dataSource == null)
            {
                return;
            }

            //вот тут
            int col = e.ColumnIndex; //если индекс = 6, то column будет +1

            //это имя поля
            try
            {
                string        cName = data.dataColumns[col - 1].srcDataFieldName;
                Lib.FieldInfo f     = data.dataSource.sampleObject.getFieldInfoByFieldClassName(cName);

                Lib.Sorter.SortingRule _x          = data.dataSource.sort.myActualSorter.ruleOnTheField(f);
                Lib.Sorter             myNewSorter = new Lib.Sorter();
                Lib.AscDescSortEnum    dir         = Lib.AscDescSortEnum.Asc;

                if (_x != null)
                {
                    if (_x.sortingDirection == Lib.AscDescSortEnum.NotSpecified || _x.sortingDirection == Lib.AscDescSortEnum.Desc)
                    {
                        dir = Lib.AscDescSortEnum.Asc;
                    }
                    else
                    {
                        dir = Lib.AscDescSortEnum.Desc;
                    }
                }

                //Logger.log("GRIDSORT", f.fieldClassName +"___"+ dir.ToString());

                myNewSorter.addNewSortingRule(f, dir);

                ImSorted(myNewSorter);

                setGridHeadersFromSorter(myNewSorter);

                //data.dataSource.sort.applySorter(myNewSorter);
            }
            catch (Exception e1)
            {
                //ну просто не будет сортировать
                fn.dp(e1.Message);
            }
        }
Beispiel #2
0
        private void setGridHeadersFromSorter(Lib.Sorter sorter)
        {
            Lib.AscDescSortEnum dir;

            foreach (Lib.Sorter.SortingRule sr in sorter.sortingRuleList)
            {
                dir = sr.sortingDirection;

                //теперь поставить галочку встолбце грида
                //нужен метод, который из сортингрулов проставляет заголовки грида
                //номер столбца грида по fieldInfoObject


                DataGridViewColumn c = getColumnByClassName(sr.fieldClassName);

                if (c == null)
                {
                    continue;
                }

                string s = c.HeaderText;

                string s0 = (dir == Lib.AscDescSortEnum.Asc) ? "^" : "˅";

                if (s.Length > 0)
                {
                    if (s[0].ToString() == "^" || s[0].ToString() == "˅")
                    {
                        s = s0 + " " + fn.substrBeginsFromLtrNo(s, 2);
                    }
                    else
                    {
                        s = s0 + " " + s;
                    }
                }
                c.HeaderText = s;
            }
        }