Tôi có một bàn phím Gwt. Nhấp vào tiêu đề sắp xếp các cột đúng cách. Nhưng khi tải trang, các cột không được sắp xếp theo mặc định. Tôi muốn tạo cột đúng nhất để sắp xếp khi tải trang.Điện thoại di động Gwt gọi sắp xếp theo một cột
Trả lời
Bạn có thể sử dụng getColumnSortList() và đẩy cột mà bạn muốn sắp xếp theo, như vậy:
dataGrid.getColumnSortList().push(columnToSortBy);
Bảng sẽ được sắp xếp theo cột được đưa ra trong thứ tự tăng dần.
Gọi phương thức này hai lần, sẽ kích hoạt kiểm tra để kiểm tra nếu cột đã được đưa vào danh sách và nếu được sắp xếp theo thứ tự giảm dần, để có được bảng được sắp xếp theo cột theo thứ tự giảm dần:
dataGrid.getColumnSortList().push(columnToSortBy);
dataGrid.getColumnSortList().push(columnToSortBy);
Đằng sau hiện trường, cột được đẩy vào một danh sách bên trong bảng gọi là ColumnSortList vị trí 0. các danh sách tương tự được cập nhật trên mỗi nhấp chuột tiêu đề cột.
Đảm bảo bạn gọi phương thức này sau khi bạn đã khởi tạo cột.
Tôi khuyên bạn nên truy xuất dữ liệu bạn sắp hiển thị đã được sắp xếp. Nếu đó là trường hợp sau đó bạn chỉ cần thiết lập các biểu tượng phân loại chính xác (tăng dần hoặc giảm dần):
/**
* Displays the appropriate sorted icon in the header of the column for the given index.
*
* @param columnIndex
* of the column to mark as sorted
* @param ascending
* <code>true</code> for ascending icon, <code>false</code> for descending icon
*/
public void setSortedColumn(int columnIndex, boolean ascending) {
Column<T, ?> column = table.getColumn(columnIndex);
if (column != null && column.isSortable()) {
ColumnSortInfo info = table.getColumnSortList().push(column);
if (info.isAscending() != ascending) {
table.getColumnSortList().push(column);
}
}
}
Nếu dữ liệu không thể được sắp xếp trước khi lấy bạn có thể sắp xếp danh sách giống như cách bạn làm điều đó khi một người dùng nhấp vào tiêu đề (onColumnSort(ColumnSortEvent event)
với Comparator
) trước khi bạn hiển thị tiêu đề.
Mã của bạn rất hữu ích. Cảm ơn bạn. – slugmandrew
Điều này rất hữu ích để đảm bảo rằng sắp xếp mặc định không chuyển đổi giữa tăng dần và giảm dần khi sử dụng giải pháp của Jeff Allen. –
Để làm rõ một số câu trả lời hiện có ... một danh sách sắp xếp của cellTable
(được truy cập bởi hàm getColumnSortList()
) chỉ xác định trạng thái của tiêu đề của bảng, nhưng không thực sự sắp xếp bất kỳ dữ liệu nào.
Như @ z00bs đề xuất, có thể khôn ngoan khi sắp xếp dữ liệu từ bên ngoài, nếu có thể. Nếu bạn biết rằng dữ liệu sẽ được sắp xếp trước, thì bạn nên sử dụng các hàm getColumnSortList().clear()
và getColumnSortList().push()
để liên lạc với người dùng của bạn cách dữ liệu được sắp xếp.
Nếu, tuy nhiên, bạn muốn CellTable thực sự sắp xếp dữ liệu, bạn sẽ cần kích hoạt sự kiện để buộc CellTable thực sự sắp xếp thành phần dữ liệu phía máy khách. Để làm điều này, bạn có thể sử dụng phương thức nhà nước ColumnSortEvent.fire()
, như vậy:
ColumnSortEvent.fire(myTable, myTable.getColumnSortList());
này sẽ kích hoạt một sự kiện mà xử lý việc phân loại các dữ liệu dựa trên tình trạng hiện thời của tiêu đề. Vì vậy, bạn có thể đặt trạng thái sắp xếp ban đầu mong muốn của tiêu đề đầu tiên, và sau đó thực hiện dòng này để thực sự làm cho thứ tự dữ liệu phản ánh trạng thái sắp xếp hiện tại được biểu diễn trong tiêu đề.
- 1. sắp xếp csv theo cột
- 2. sắp xếp theo cột linux
- 3. Sắp xếp Slickgrid theo nhiều cột?
- 4. Trong javascript 'Nếu điện thoại di động'
- 5. cảm biến điện thoại di động
- 6. Hình động và Điện thoại không hoạt động trên điện thoại di động
- 7. Cách tự động sắp xếp cột QTreeWidget?
- 8. Cách sắp xếp một QTableView theo một cột?
- 9. C# sắp xếp bảng theo 2 cột
- 10. Sắp xếp các bảng theo cột jquery
- 11. Sắp xếp theo nhiều cột (Perl)
- 12. Theo dõi thời lượng cuộc gọi điện thoại
- 13. window.scrollTo không hoạt động trong điện thoại di động
- 14. asp.net mvc, jquery điện thoại di động, thực hành tốt nhất về kiến trúc điện thoại
- 15. Cách kích hoạt cuộc gọi điện thoại khi nhấp vào liên kết trong trang web trên điện thoại di động
- 16. jquery di động thực hiện cuộc gọi điện thoại khi nhấn một nút
- 17. Làm thế nào để tắt một điện thoại di động Android theo chương trình?
- 18. Jquery thay đổi điện thoại di động trang
- 19. Cách đúng để sử dụng điện thoại di động và điện thoại di động với nhiều trang html
- 20. cách sắp xếp một khung dữ liệu theo 2 cột
- 21. Sắp xếp một mảng python/recarray theo cột
- 22. setTimeout không hoạt động trên điện thoại di động safari
- 23. Đặt thứ tự sắp xếp mặc định cho nhấp chuột đầu trang ban đầu trên bảng di động gwt
- 24. Cách thực hiện cuộc gọi điện thoại theo chương trình?
- 25. Nút bật/tắt trên điện thoại di động jQuery?
- 26. Số hiển thị HTML trên điện thoại di động
- 27. Sắp xếp một DataGridView trên nhiều cột?
- 28. Làm cách nào để liên tục theo dõi vị trí của điện thoại di động Android?
- 29. listview C# sắp xếp theo cột cụ thể
- 30. Sắp xếp mảng MATLAB di Across nhiều cột
Tôi đang gọi push() hai lần liên tiếp như được hiển thị nhưng, mặc dù mũi tên hiển thị nó như được sắp xếp hai lần, dữ liệu thực tế thì không. Không thể nghĩ tại sao điều này lại xảy ra. – slugmandrew
giống như ở đây, tôi không biết tại sao –
Tôi đã gặp vấn đề đó và chỉ đăng giải pháp làm câu trả lời thay thế. –