예제 #1
0
        private void RefreshRows(int begin, int end, bool refreshSelectedRow)
        {
            int offset = begin - grid_.VisibleRowTop;
            int row_ct = end - begin + 1;

            //System.Diagnostics.Debug.WriteLine("Refresh : b=" + begin + " e=" + end + "  refresh=" + refreshSelectedRow);

            if (row_ct <= 0 || table_ == null)
            {
                return;
            }

            grid_.SuspendDrawRows();

            int i = 0;

            foreach (var row in table_.Select(sql_, begin, row_ct))
            {
                SetRowData(offset + i, row, refreshSelectedRow);
                i++;
            }

            if (i < row_ct && begin + i == grid_.RowCount - 1 && grid_.NewRowIsVisible)
            {
                SetRowData(offset + i, new_row_, refreshSelectedRow);
                i++;
            }

            for (; i < row_ct; i++)
            {
                SetRowData(offset + i, null, refreshSelectedRow);
            }

            grid_.ResumeDrawRows();
        }