2015-06-10 44 views
9

Sử dụng gói RDT sáng bóng, tôi đang tạo một số bảng nhất định. Số lượng cột thay đổi theo đầu vào của người dùng & không cố định. Tôi đã bao gồm đoạn mã sau để bao gồm một thanh cuộn ngang để khi số lượng cột lớn, người dùng có thể cuộn qua các cột không hiển thị trực tiếp.Cách hiển thị thanh cuộn ngang trong DT :: datatable

server.R:

output$results <- DT::renderDataTable({ 
    DT::datatable(data = datasetInput(), 
        options = list(scrollX = TRUE,...) 
       ) 
    }) 
<code reduced for brevity> 

Sử dụng đoạn mã trên, các thanh cuộn ngang không nhìn thấy được lúc đầu nhưng xuất hiện khi tôi bấm vào liên tiếp và nhấn mũi tên bên phải trên bàn phím của tôi. Có cách nào thanh cuộn sẽ hiển thị ngay khi bảng được kích hoạt, cho dù tôi có bao nhiêu cột và tôi có thể kéo thanh cuộn bằng con trỏ chuột không?

Cập nhật:

Tôi đã thử các mã trong câu trả lời dưới đây và đây là những gì tôi nhìn thấy - không có thanh cuộn ngang.

enter image description here

+1

Hãy luôn cung cấp sessionInfo của bạn(). Bạn đã không nói điều đó, nhưng tôi đoán bạn đang sử dụng Mac OS X. Nếu đúng như vậy, không có gì đáng ngạc nhiên. Đó chỉ là hành vi mặc định của Mac - thanh cuộn được ẩn theo mặc định cho đến khi bạn bắt đầu cuộn. –

+0

Cảm ơn Yihui. Đúng, tôi đang sử dụng MacOSX. Tôi sẽ đảm bảo rằng tôi cung cấp sessionInfo() của tôi trong tương lai. –

+0

Tôi không sử dụng Mac thường xuyên, nhưng tôi đoán có thể có một cách để làm cho thanh cuộn luôn hiển thị. Xem bạn có may mắn với Google ... –

Trả lời

14

Tôi không nghĩ rằng bạn có thể (hoặc phải) buộc một thanh cuộn dễ dàng nếu bạn không cần một, nhưng các mã trên hoạt động tốt đối với tôi, nó cho thấy một thanh cuộn khi trang khởi. Có lẽ vấn đề là với dữ liệu hoặc cái gì khác.

Dưới đây là một ví dụ rất nhỏ mà có một thanh cuộn ngang trên tải trang

runApp(shinyApp(
    ui = fluidPage(
    DT::dataTableOutput("results", width = 300) 
), 
    server = function(input, output, session) { 
    output$results <- DT::renderDataTable(
     mtcars, 
     options = list(scrollX = TRUE) 
    ) 
    } 
)) 
+0

Tôi có nghĩa là thanh cuộn hoạt động trong mã của tôi, nhưng nó không hiển thị cho đến khi tôi nhấp vào một hàng và nhấn vào mũi tên phải. Nó không hiển thị nên tôi không thể sử dụng con trỏ chuột để kéo nó. –

+0

Tôi không biết bao nhiêu hoặc nếu nó thậm chí còn quan trọng, nhưng tôi đang sử dụng các tùy chọn bên trong 'DT :: datatable' và bạn đang sử dụng nó bên trong' DT :: renderDataTable'. Tôi đoán đó không phải là vấn đề. Nhưng tôi vẫn không thể nhìn thấy ** thanh cuộn mà không sử dụng bàn phím của tôi và chắc chắn không thể sử dụng chuột để cuộn. –

+0

bạn nói đúng, sử dụng các tùy chọn trong 'renderDataTable' so với' datatable' sẽ không tạo ra sự khác biệt nào. Như tôi đã nói, tôi nghi ngờ vấn đề không phải là với dữ liệu nhưng với tập dữ liệu của bạn hoặc một cái gì đó khác về mã của bạn gây ra điều này, bởi vì một ví dụ đơn giản giống như ví dụ tôi đã làm không hoạt động. –

1

Hãy thử điều này:

DT::datatable(sta, options = list(
    pageLength=50, scrollX='400px'), filter = 'top') 
Các vấn đề liên quan