Próbuję uzyskać DataGridView do renderowania wiersz "wstaw nowy wiersz" jako pierwszego wiersza w siatce zamiast ostatniego wiersza. Jak mam to zrobić, czy jest to możliwe w sterowaniu?Jak ustawić "wstaw nowy wiersz" jako pierwszy wiersz w DataGridView
Odpowiedz
Nie sądzę, że istnieje jakikolwiek sposób przeniesienia wiersza "nowego wiersza" na górę siatki danych.
Ale co się stanie, jeśli pozostawisz górny wiersz pusty i wypełnione dane zostaną odpowiednio przesunięte w dół? Innymi słowy, utwórz własny wiersz "nowego wiersza", który jest pierwszym rzędem w siatce i dodaj nowe puste wiersze powyżej po zakończeniu edycji.
Dim myrow = existingDataTable.NewRow
existingDataTable.Rows.Add(myrow)
adp.Fill(existingDataTable)
With DataGridView1
.DataSource =existingDataTable
End With
Czy można przypisać tymczasową wartość do klucza nowego wiersza, która jest mniejsza niż wszystkie istniejące wiersze? Następnie posortuj DataView według tego klucza i powiązaj widok z siatką.
Mój zespół używa liczb ujemnych jako identyfikatorów rzędów, dopóki ten wiersz nie zostanie wstawiony do bazy danych. Nie przypominam sobie, żeby nasze nowe wiersze pokazywały się na górze, ale my też tego nie wymagamy.
A jeśli wszystko inne zawiedzie hacky sposób byłoby umieścić oddzielny DataGridView jednej linijce powyżej istniejącego, sklonować jego kolumny, a nawet drut zdarzenie składania rząd, aby dodać dane do dolna :)
Jeśli nie używasz powiązanych elementów sterujących, dgvItems.Rows.Insert() umożliwia określenie miejsca wstawienia wiersza.
Jeśli używasz związany DataGridView, bez pewnego rodzaju czynnej, dodać nowy wiersz do źródła danych w wybranej lokalizacji:
BoundTable.Rows.InsertAt (BoundTable.Rows.NewRow(), RowLocation) ;
Znalazłem interesującą relację, jeśli istnieją edycje w bieżącym wierszu, a wiersz nie został zatwierdzony do źródła danych (tzn. Po prostu zacząłeś wprowadzać dane), wydaje się konieczne przeniesienie aktywnej komórki do kolejny wiersz, aby zatwierdzić zmiany przed wstawieniem wierszy.
@Jeff Corder został przez przypadek zaksięgowany, zanim w pełni przeczytam Twój komentarz, ale pozostanie on niezauważony dla Twojego opisu. Jest to jednak moim zdaniem najskuteczniejszy sposób, aby to zrobić, jeśli nie chcesz pracować z unikalnymi identyfikatorami klucza. –
Czy zużywasz zdarzenie RowDataBound? Jeśli tak, możesz sprawdzić, czy wiążisz wiersz nagłówka kolumny, a następnie dodaj odpowiedni kod, aby wstawić wiersz tuż poniżej.
W ten sposób, gdy wiersze treści są powiązane, nie ma żadnego zamieszania z indeksami elementów, ale zaleca się używanie niektórych DataKeys lub czegoś na wszelki wypadek. Ponadto użycie zdarzenia RowDatabound umożliwiłoby dodanie "wiersza wstawiania", gdy strony użytkownika znajdą się w innym bloku wierszy w widoku GridView.
Zakładam, że masz na myśli, że kiedy chcesz dodać nowy wiersz, chcesz, aby wiersz był wstawiany u góry tabeli, a nie u dołu tabeli, tak jak domyślnie? Jeśli tak jest, nie musisz zajmować się sortowaniem ani wartościami kluczowymi; po prostu zrobić jako taki metodą Insert:
'Utwórz nowy wiersz
Dim tmpRow = Nowa DataGridViewRow
' Adjust wiersz w jakiś sposób
tmpRow.Wysokość = _cellRectSize
„Dodaj wiersz DataGridView (tj dgvEditor) w górę (indeks = 0)
Me.dgvEditor.Rows.Insert (0 tmpRow)
roboty jak dla mnie urok, mam nadzieję, że pomoże to komuś innemu!
Jak już powiedziałem podczas E, użyj Insert
zamiast Add
. W ten sposób możesz określić, gdzie chcesz dodać nowy rekord. Aby dodać nowy rekord na szczycie siatki, po prostu użyj Insert(0)
.
DataGridView1.Rows.Insert(0)
Spowoduje to dodanie nowego rekordu na górze, zawsze
DataGridView1.Rows(0).Cells(n).Value = "abc"
zostanie ustawiony na wartość n kolumny
- 1. Jak dodać nowy wiersz do DataGridView programowo
- 2. fgetcsv(): pierwszy wiersz jako klucz
- 3. Kliknij dwukrotnie wiersz DataGridView?
- 4. Jak odczytać pierwszy wiersz ciągu?
- 5. ustawić wiersz równy inny wiersz w mysql?
- 6. wstawić nowy wiersz w DataTable
- 7. Jak zachować określony wiersz jako pierwszy wynik zapytania (T-SQL)?
- 8. dodać nowy wiersz w tabeli
- 9. Django - pomiń pierwszy wiersz tablicy
- 10. numpy loadtxt Pomiń pierwszy wiersz
- 11. LEFT JOIN tylko pierwszy wiersz
- 12. formularz Django as_table nowy wiersz
- 13. JQuery Datatables Dodaj nowy wiersz
- 14. Usuń ostatni wiersz Databound DataGridView C#
- 15. Jak odczytywać tylko pierwszy wiersz pliku
- 16. LOAD DATA LOCAL, Jak pominąć pierwszy wiersz?
- 17. Usuwanie pierwszy wiersz pliku tekstowego w C#
- 18. Czy czytasz tylko pierwszy wiersz pliku?
- 19. Jak dodać nowy wiersz do istniejącego QTableWidget?
- 20. Jak usunąć nowy wiersz z wyjścia procesowego?
- 21. Jak inaczej traktować pierwszy wiersz pliku w Pythonie?
- 22. pierwszy pusty wiersz w programie excel
- 23. Wybierz pierwszy wiersz każdej grupy w sql
- 24. Pomiń pierwszy wiersz w SQL Server 2005?
- 25. margines ustawiony na pierwszy wiersz tekstuView
- 26. Wstaw wiersz bez ponownego ładowania tabeli
- 27. Wstaw wiersz Androida/ORMLite z identyfikatorem
- 28. Jak usunąć pierwszy wiersz ramki danych w R?
- 29. Zatrzymaj Datagrid wybierając domyślnie pierwszy wiersz
- 30. MySQL zwraca pierwszy wiersz połączonej tabeli
hmm, które mogłyby pracować. Nie jestem pewien, jak by to działało z wiązaniem danych itp., Ale będę musiał trochę poeksperymentować. –