Translate

Samstag, 27. Februar 2016

C#.Net Datagridview Sortierung, aktuelle selektierte Zeilen und Scrollbarposition speichern




//Aktuelle Sortierung zwischenspeichern


{
    DataGridViewColumn oldColumn = Datagridview.SortedColumn;

    ListSortDirection direction = Datagridview.SortOrder;

    List<int> selectedItems = new List<int>();


    if (Datagridview.SelectedRows.Count > 0) {

        foreach (void r_loopVariable in Datagridview.SelectedRows) {
            r = r_loopVariable;
            selectedItems.Add(r.Index);

        }

    }

    //Aktuelle erste angezeigte Zeile speichern

    int saveRow = 0;


    if (Datagridview.Rows.Count > 0) {

        if ((Datagridview.FirstDisplayedCell != null)) {
            saveRow = Datagridview.FirstDisplayedCell.RowIndex;

        }

    }


'Your code




    //Sortierung anwenden


    if ((oldColumn != null)) {
        switch (direction) {

            case 0:

                break;
            case 1:

                Datagridview.Sort(oldColumn, ListSortDirection.Ascending);
                //Datagridview sortieren
                break;

            case 2:

                Datagridview.Sort(oldColumn, ListSortDirection.Descending);
                //Datagridview sortieren
                break;

        }


    } else {
        Datagridview.Sort(Datagridview.Columns(2), ListSortDirection.Descending);
        //Datagridview sortieren

    }

    //Alle SelectedRows resetten


    foreach (void r_loopVariable in Datagridview.SelectedRows) {
        r = r_loopVariable;
        r.Selected = false;

    }

    //SelectedRows wieder setzen


    if (selectedItems.Count > 0) {

        foreach (void r_loopVariable in selectedItems) {
            r = r_loopVariable;

            if (Datagridview.Rows.Count > 0) {

                if (Datagridview.Rows.Count - 1 >= r) {
                    Datagridview.Rows(r).Selected = true;

                }

            }

        }

    }

    //Scrollbar wieder richtig setzen


    if (saveRow != 0 & saveRow < Datagridview.Rows.Count) {
        Datagridview.FirstDisplayedScrollingRowIndex = saveRow;

    }
}

Keine Kommentare:

Kommentar veröffentlichen