2011-11-16 49 views
5

Có thể đặt cột đầu tiên của SlickGrid được cố định không? Vì vậy, nó luôn luôn có thể nhìn thấy trong cuộn ngang, giống như hàng tiêu đề?SlickGrid với cột đầu tiên cố định

Cảm ơn bạn đã trợ giúp!

+0

vì vậy tôi không tìm thấy gì trong nguồn (phiên bản SlickGrid v2.0 alpha). Có lẽ câu trả lời chỉ là "không". – user1027167

+1

Đó là câu trả lời cho cùng một mẫu câu hỏi mà tác giả SlickGrid ở đây: http://groups.google.com/group/slickgrid/browse_thread/thread/ba6a85279f3cfd5f – njr101

Trả lời

5

Tôi nghĩ bạn có thể thực hiện trong các sự kiện .onViewportChanged() các bước tiếp theo:

  1. Lấy cột với .getColumns() và lưu trữ trong một biến mảng arrColumns.
  2. Sau đó, phát hiện cột đầu tiên.
  3. Lưu trữ dữ liệu với .getData() trong biến mảng arrData
  4. Sắp xếp cột đầu tiên ở đầu.
  5. Đặt cột trong mới arrColumns với .setColumns()
  6. reassembly arrData với thứ tự của các mới arrColumns.
  7. Gọi .resizeCanvas()
  8. Vuốt các ngón tay của bạn. : D

Xin lỗi nhưng tôi không tìm thấy phương pháp hoặc tùy chọn để bạn có thể thực hiện hành vi này theo cách bạn muốn.

Vâng, hãy xem suy nghĩ của bạn về this. Nó là hoàn hảo, nhưng nó là một ý tưởng. Tôi sẽ làm một cái gì đó tốt hơn nếu phương thức scrollTo() sẽ được công khai.

+0

Cảm ơn bạn đã cân nhắc của bạn :) nhưng tôi nghĩ rằng đó không phải là rất performant ... – user1027167

+0

Tại sao không thử và làm cho một số xét nghiệm? – Galled

+0

không thực sự rất hiệu quả vì bạn phải xử lý tất cả dữ liệu của lưới. vấn đề tiếp theo: cuộn ngang được thực hiện pixel theo pixel và không phải cột theo cột. – user1027167

0

Tôi biết điều này không hoàn toàn phù hợp với nhu cầu của bạn, nhưng bạn hoàn toàn có thể tránh di chuyển ngang bằng cách đặt forceFitColumns thành true trong đối tượng tùy chọn.

Tôi cho rằng hành vi này sẽ không mong muốn đối với người dùng có màn hình rất nhỏ.

+0

Không, anh ấy cần một cái gì đó như đóng băng các ô trong Excel. – Galled

+1

Do đó cụm từ đầu tiên trong câu trả lời của tôi ... – vemv

11

Có một liên kết diễn đàn khác (không thể tìm thấy liên kết ngay bây giờ) dẫn tôi đến JLynch's fork. Ông duy trì cả một thẻ 1.4.3 với các bản vá lỗi cho các cột và hàng cố định, cũng như duy trì đầu 2.0. Đây là ví dụ 2.0 với cả hai số frozen rows and columns.

Trong ví dụ này, tác giả sử dụng một vài tùy chọn bổ sung thuộc tính:

 ,topPanelHeight: 25 
     ,frozenColumn: 2 
     ,frozenRow: 5 

Hy vọng rằng đây không những gì bạn muốn mà không cần phải hack quá nhiều vào cốt lõi!

+0

slickgrid.js của mình khác với bình thường, khó thực hiện một số cập nhật với phiên bản slickgrid mới. Chúng ta nên tìm cách khác. – Stiger

Các vấn đề liên quan