içinde data.table kullanarak donma başlığı ve ilk sütun Veri tablosunu veren bir Parlak uygulamasına sahibim, ancak ilk sütunu ve üstbilgileri donduramıyorum, böylece tabloyu aşağı okurken okunması zor ya da karşısında. Bölmeleri dondurmak için zaten var mı? Aramayı denedim ama hiçbir şey bulamadım.Shiny
Shiny
cevap
İlginç bir soru ve şimdi Shiny için data.tables 1.10.2
'un son güncellemesi sayesinde, çeşitli eklentileri ve uzantıları kullanmak çok daha kolay. Sorunuz için FixedHeader uzantısı ideal görünüyor. alakalı JavaScript
ve CSS
dosyasını dahil gerekir bu uzantı eklemek için (http://cdn.datatables.net/ bakınız):
tagList(
singleton(tags$head(tags$script(src='//cdn.datatables.net/fixedheader/2.1.2/js/dataTables.fixedHeader.min.js',type='text/javascript'))),
singleton(tags$head(tags$link(href='//cdn.datatables.net/fixedheader/2.1.2/css/dataTables.fixedHeader.css',rel='stylesheet',type='text/css')))
)
data.tables
tablo vb çizilir kez bize geri arama şart sağlayan bir seçenek initComplete
sahiptir
function(settings, json) {
new $.fn.dataTable.FixedHeader(this, {
left: true,
right: true
});
}
iris
veri kümesinin değiştirilmiş bir sürümünü kullanarak, bir endeks ve soldan sağa kaydırmayı göstermek için sonunda rastgele bir veri ekleyeceğiz:
library(shiny)
myData <- cbind(list(index = row.names(iris)), iris
, rep(list(row.names(iris)), 10))
names(myData)[7:16] <- paste0("randomData", 1:10)
runApp(
list(ui = fluidPage(
tagList(
singleton(tags$head(tags$script(src='//cdn.datatables.net/fixedheader/2.1.2/js/dataTables.fixedHeader.min.js',type='text/javascript'))),
singleton(tags$head(tags$link(href='//cdn.datatables.net/fixedheader/2.1.2/css/dataTables.fixedHeader.css',rel='stylesheet',type='text/css')))
),
dataTableOutput("mytable")
)
, server = function(input, output, session){
output$mytable <- renderDataTable(myData,
options = list(
pageLength = 50,
initComplete = I("function(settings, json){
new $.fn.dataTable.FixedHeader(this, {
left: true,
right: true
});
}")
)
)
})
)
görebildiğimiz gibi, görüntünün 8'ini kaydetmek için aşağıya kaydırılmış olduğumuzu görebiliyoruz, ancak başlık ve ilk sütun (eklenen dizin sütunumuz) hala görülebilir durumda.
Mutlu kullanılabilir yardım etmek ne görebilirsiniz ise cevap çözer eğer sorunuz, onu işaretleyerek kabul edildi olarak işaretlemeyi düşünün. – jdharrison
Yardımlarınız için çok teşekkürler! İlk sütunun başlığını da dondurmak için bir yol var mı, bu yüzden sağa kaydırırken görünür? – Kamal
'dataTables' belgelerini ve mükemmel ayrıntılı cevabınızı takip ederek, parlak uygulamalardan birinde 'FixedColumns' eklentisini denedim. Başlıklarımdaki "dataTables 1.10.4" css ve js dosyalarının yanı sıra "fixedcolumns/3.0.2" css ve js dosyalarını dahil ettim ve aşağıdaki gibi küçük bir değişiklikle seçeneklerimdeki initComplete'i ekledim: 'function (ayarlar, json) { yeni $ .fn.dataTable.FixedColumns (bu, {}); } '. Ancak uygulamayı çalıştırdığımda, tablo 'işleme ... 'mesajını görüntülemeye devam etti ve beklendiği gibi yüklenmedi. Şu anda en son parlak sürüm olan 0.11'i kullanıyorum. Düşünceler? –
FixedHeader çalışmıyor x-kaydırma, ama FixedColumns eserleri ise yanlış sütun adlarını verir. Dolayı kendilerine
library(shiny)
library(DT)
runApp(
list(ui = fluidPage(
dataTableOutput("mytable")
)
, server = function(input, output, session){
Rows <- c(1:50)
for (y in 1:15){
x<-y-1
assign(letters[x+1],runif(5, 0, 1))
}
x <- data.frame(Rows, mget(letters[1:15]), row.names=NULL)
x<- x[2:15]
output$mytable <- renderDataTable(
DT::datatable(x, rownames=FALSE,extensions = c('FixedColumns',"FixedHeader"),
options = list(dom = 't',
scrollX = TRUE,
paging=FALSE,
fixedHeader=TRUE,
fixedColumns = list(leftColumns = 1, rightColumns = 0))
)
)
}
)
)
arasında incompatibility son Parlak güncelleme sonrasında üzere, buradan denemek ve sıralama seçenekleri https://datatables.net/upgrade/1.10-convert –