Jak utworzyć konkretną komórkę wiersza tylko do odczytu (nie edytowalną) na XtraGrid? Na przykład tylko dla wiersza [0], ale nie dla wszystkich wierszy.Czy mogę utworzyć wartość komórki wiersza readOnly na XtraGrid tylko dla jednego wiersza?
Odpowiedz
Można użyć zdarzenia GridView.CustomRowCellEdit:
//...
var repositoryItemTextEditReadOnly = new DevExpress.XtraEditors.Repository.RepositoryItemTextEdit();
repositoryItemTextEditReadOnly.Name = "repositoryItemTextEditReadOnly";
repositoryItemTextEditReadOnly.ReadOnly = true;
//...
void gridView1_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e) {
if(e.RowHandle == 0)
e.RepositoryItem = repositoryItemTextEditReadOnly;
}
Można użyć zdarzenia ColumnView.ShownEditor:
void gridView1_ShownEditor(object sender, EventArgs e)
{
ColumnView view = (ColumnView)sender;
view.ActiveEditor.Properties.ReadOnly = view.FocusedRowHandle == 0;
}
Źródło:How to Conditionally Prevent Editing for Individual Grid Cells
Kiedy trzeba wykonać siatkę komórka tylko do odczytu na podstawie warunku , Najlepszym podejściem jest użycie ShowingEditor wydarzenie GridView i możliwość edycji przez e.Cancel parametr przekazany do imprezy. Po prostu ustaw wartość True, gdy jest to konieczne, aby zapobiec edycji .
// disable editing
private void gridView1_ShowingEditor(object sender, System.ComponentModel.CancelEventArgs e) {
GridView view = sender as GridView;
e.Cancel = view.FocusedRowHandle == 0;
}
Source -How to display disabled buttons for particular cells within a ButtonEdit column
Innym podejściem jest to, że przypisanie tylko do odczytu repozytorium kontroli edytora jak sugeruje @DmitryG i ja również wdrożyć że drogę kilka razy, kiedy nie było kolumną, która zawiera przycisk.
W twoim przypadku powinieneś utworzyć dwa elementy repozytorium TextEdit. Jeden z aktywowanym przyciskiem, a drugi z wyłączonym przyciskiem. Następnie należy obsłużyć zdarzenie z GridView.CustomRowCellEdit i przekazać niezbędny element repozytorium do parametru e.RepositoryItem zgodnie z konkretnym warunkiem . Dodatkowe informacje można znaleźć w temacie pomocy Assigning Editors to Individual Cells.
private void gridView1_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e)
{
if (e.Column.Caption == "Any2")
{
if (e.RowHandle == 0)
e.RepositoryItem = columnReadOnlyTextEdit;
else
e.RepositoryItem = columnTextEdit;
}
}
Referencje:
How to customize the Look-And-Feel of my grid cells
How to make my grid columns read-only
- 1. Pobieranie tylko jednego wiersza za pomocą MySQLi
- 2. Włączanie trybu edycji tylko dla jednego wiersza w widoku tabeli
- 3. excel vba uzyskiwanie wiersza, wartość komórki z select.address
- 4. jqGrid gridComplete: - getRowData - uzyskać wartość komórki wiersza z tablicy
- 5. Pobieranie tylko jednego wiersza z MySQL przy użyciu Zend DB
- 6. Zapytanie sql do usunięcia tylko jednego zduplikowanego wiersza
- 7. Potrzebuję tylko jednego wiersza zwróconego przez INNER JOIN
- 8. mySQL: uzyskać wartość mieszania dla każdego wiersza?
- 9. Chciałbym dodać skalar tylko do jednego wiersza macierzy
- 10. Jak scalić dwie komórki wiersza qtable?
- 11. Wybieranie jednego wiersza ze zduplikowanych wierszy
- 12. MySQL Wybierz DISTINCT wiele kolumn na podstawie unikatowości jednego wiersza?
- 13. Zmiana koloru wiersza w DataGridView na podstawie ilości wartości komórki
- 14. DataTables: Jak ustawić klasy na komórki wiersza tabeli (ale nie na komórki nagłówków tabeli!)
- 15. R coraz minimalną wartość dla każdego wiersza w macierzy i powrocie wiersza i kolumny nazwy
- 16. Jak znaleźć numer wiersza i kolumny komórki w tabeli
- 17. Zwijanie ramki danych przez wybranie jednego wiersza na grupę
- 18. MySQL: Uzyskiwanie numeru wiersza (ranking) dla określonego wiersza
- 19. Jak mogę wprowadzić zmiany tylko do pierwszego wiersza pliku?
- 20. WYBIERZ gdzie wartość wiersza zawiera ciąg MySQL
- 21. Kompilator wiersza poleceń dla XTend
- 22. Zmień kolor tła wiersza lub zakresu czy dana wartość komórki jest równa tekstem
- 23. Java - Swing - JTable - Ustaw kolor dla zaznaczonego wiersza, ale nie dla komórki
- 24. Suma wiersza n do ostatniego wiersza
- 25. Jak utworzyć zależność od pamięci podręcznej sql specyficzne dla wiersza?
- 26. UIPickerView: Uzyskaj wartość wiersza podczas wirowania?
- 27. uzyskać wartość ostatniego niepustego kolumny dla każdego wiersza
- 28. Jak utworzyć podział wiersza w ruby?
- 29. Usuń linię separatora tylko dla jednej komórki
- 30. Walidacja wiersza datagridów WPF
Doskonała odpowiedź, próbuje dowiedzieć się dobrym sposobem, aby to zrobić na dłużej niż Zależy mi się przyznać! :-) – DashRantic