R Shiny updateNumericInput для нескольких чисел итеративно с циклом внутри ObserveEvent - PullRequest
0 голосов
/ 07 января 2019

Я использую пакет EditData в веб-приложении Shiny для редактирования или внесения незначительных изменений в набор данных. Функциональность редактирования работает хорошо, но есть возможность выбрать несколько столбцов для удаления, но не для редактирования, и я пытаюсь включить то же самое для редактирования. Я новичок здесь, и я попытался изменить функцию в соответствии с моими потребностями, и так как у меня нет таких хороших знаний, и я терплю неудачу.

Кажется, я понял, что функция editableDT внутри этого пакета отвечает за обновление значений, из которых обновляются стрелки влево и вправо (кнопки действий), и, следовательно, за выбор строк.

observeEvent(input$left, {
    value = ifelse(input$no > 1, input$no - 1, 1)
    updateNumericInput(session, "no", value = value)
})
observeEvent(input$right, {
    value = ifelse(input$no < nrow(df()), input$no + 1, nrow(df()))
    updateNumericInput(session, "no", value = value)
})

Мое требование: Если я выбираю несколько строк, кнопки «Влево» и «Вправо» должны обновляться только до выбранных строк. Пример: если я выберу 2,5 и 8 строк, редактирование должно начинаться со 2-го, а затем до 5-го и 8-го.

observeEvent(input$right,{

  ids <- input$origTable_rows_selected
  for (i in ids) {
  value = i
  updateNumericInput(session,"no",value=value)
  }
})

Я пробовал приведенный выше код, но выбор начинается с единицы, а затем после нажатия клавиши вправо он переходит к последней выбранной строке, в моем примере 8-й строке.

editData::editData(mtcars)

в этом примере, если выбран переключатель «несколько» и после выбора 2,5 и 8-й строк и когда вызывается «Правка», редактирование всегда начинается с 1-й строки и увеличивается на одну строку до следующей или предыдущей после нажатия кнопки. Правая и Левая кнопка соответственно. [Пример Pic из EditData] [1] [1]: https://i.stack.imgur.com/lVZuT.png

Что мне нужно, так это увеличить / уменьшить число следующих / предыдущих выбранных строк.

...