Включить интеллектуальный поиск на стороне сервера в столбцах с даннымиJquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Anonymous
 Включить интеллектуальный поиск на стороне сервера в столбцах с данными

Сообщение 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)


Подробнее здесь: https://stackoverflow.com/questions/783 ... le-columns
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Jquery»