Я реализовал пример таблицы данных в Shiny, где можно выполнять поиск по всей таблице (используя поле поиска в правом верхнем углу) и/или внутри определенного столбца (используя поля поиска над столбцами). .
Интеллектуальный поиск (например, при поиске «Ma W» отображается «Mazda RX4 Wag») отлично работает для всех полей поиска, когда таблица данных обрабатывается на стороне клиента (SERVER = FALSE).
Однако, если таблица данных обрабатывается на стороне сервера (SERVER = TRUE), интеллектуальный поиск работает только для поиска по всей таблице данных, но перестает работать для поиска по столбцу.
Есть ли способ включить интеллектуальный поиск также для столбцов с обработкой на стороне сервера?
Заранее спасибо.
[img]https://i.stack.imgur. com/t5qCr.png[/img]
library(DT)
library(shiny)
ui = fluidPage(
fluidRow(
column(width = 12,
DTOutput("dtable")
)
)
)
server = function(input, output, session) {
data = data.frame(
car = c("Mazda", "Mazda RX4", "Mazda RX4 Wag", "Ford", "Mercedes"),
pet = c("dog", "dog", "cat", "cat", "cat")
)
output$dtable = renderDT({
js = c(
"function(settings) {",
" var instance = settings.oInstance;",
" var table = instance.api();",
" var $inputs = instance.parent().find('.form-group input');",
" $inputs.off('keyup search input').on('keyup', function() {",
" var value = $(this).val();",
" if(value !== '') {",
" var index = 1 + $inputs.index(this);",
" var column = table.column(index);",
" column.search(value, false, true, true).draw();", # -> regex, smart, caseInsensitive
" }",
" });",
"}"
)
datatable(
data, filter = "top",
options = list(
dom = "ft",
columnDefs = list(
list(targets = "_all", className = "dt-center")
),
search = list(regex = FALSE, smart = TRUE, caseInsensitive = TRUE), # -> is redundant due to the following up js = c(...) part
initComplete = JS(js)
)
)
}, server = FALSE) # -> switch for client-side (server=FALSE) or server-side (SERVER=TRUE) processing
}
shinyApp(ui = ui, server = server)
Подробнее здесь: https://stackoverflow.com/questions/783 ... le-columns
Включить интеллектуальный поиск на стороне сервера в столбцах с данными ⇐ Jquery
Программирование на jquery
1712858199
Anonymous
Я реализовал пример таблицы данных в Shiny, где можно выполнять поиск по всей таблице (используя поле поиска в правом верхнем углу) и/или внутри определенного столбца (используя поля поиска над столбцами). .
Интеллектуальный поиск (например, при поиске «Ma W» отображается «Mazda RX4 Wag») отлично работает для всех полей поиска, когда таблица данных обрабатывается на стороне клиента (SERVER = FALSE).
Однако, если таблица данных обрабатывается на стороне сервера (SERVER = TRUE), интеллектуальный поиск работает только для поиска по всей таблице данных, но перестает работать для поиска по столбцу.
Есть ли способ включить интеллектуальный поиск также для столбцов с обработкой на стороне сервера?
Заранее спасибо.
[img]https://i.stack.imgur. com/t5qCr.png[/img]
library(DT)
library(shiny)
ui = fluidPage(
fluidRow(
column(width = 12,
DTOutput("dtable")
)
)
)
server = function(input, output, session) {
data = data.frame(
car = c("Mazda", "Mazda RX4", "Mazda RX4 Wag", "Ford", "Mercedes"),
pet = c("dog", "dog", "cat", "cat", "cat")
)
output$dtable = renderDT({
js = c(
"function(settings) {",
" var instance = settings.oInstance;",
" var table = instance.api();",
" var $inputs = instance.parent().find('.form-group input');",
" $inputs.off('keyup search input').on('keyup', function() {",
" var value = $(this).val();",
" if(value !== '') {",
" var index = 1 + $inputs.index(this);",
" var column = table.column(index);",
" column.search(value, false, true, true).draw();", # -> regex, smart, caseInsensitive
" }",
" });",
"}"
)
datatable(
data, filter = "top",
options = list(
dom = "ft",
columnDefs = list(
list(targets = "_all", className = "dt-center")
),
search = list(regex = FALSE, smart = TRUE, caseInsensitive = TRUE), # -> is redundant due to the following up js = c(...) part
initComplete = JS(js)
)
)
}, server = FALSE) # -> switch for client-side (server=FALSE) or server-side (SERVER=TRUE) processing
}
shinyApp(ui = ui, server = server)
Подробнее здесь: [url]https://stackoverflow.com/questions/78309412/enable-server-side-smart-search-in-datatable-columns[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия