【问题标题】:R make a datatable editable after initializationR在初始化后使数据表可编辑
【发布时间】:2021-03-10 16:11:27
【问题描述】:

我需要初始化数据表。目前我有两个功能非常相似:

make_data_table_settings<- function(input_df){

         result_dt <- datatable(input_df,rownames= TRUE,
                      options = list(dom = 'Bfrtip',
                                     scrollX = TRUE,
                                     lengthMenu = c(10, 20, 50),
                                     pageLength = 10))

          return (result_dt)
 }

现在在不同的点上,我需要使其可编辑,如下所示

make_data_table_settings_with_editable <- function (input_df){

     result_dt <- datatable(input_df,rownames= TRUE,
                      options = list(dom = 'Bfrtip',
                                     scrollX = TRUE,
                                     lengthMenu = c(10, 20, 50),
                                     pageLength = 10),
                   editable = list(target = 'row', disable = list(columns = c(0:5)))
                  
                )
    return (result_dt)
  }

有没有办法可以链接函数,这样我就不必重复第一个代码块?

基本上,我希望流程可以作为:

result <- make_data_table_settings(my_input_df)
result2 <- make_editable(make_data_table_settings(my_input_df))

【问题讨论】:

    标签: r datatable


    【解决方案1】:

    希望我没有误解你的问题,

    您可以只编写一个函数并使用switch 来激活正确的选项。

    编辑: 好的,谢谢您的反馈,@user1357015;你可以为你的函数添加一个额外的选项(例如editableOpt),如果设置为false应该给你相当于第一个函数;如果设置相关参数会给你第二个。让我知道这是否有帮助。

    make_data_table_Testfx <- function (
      input_df,
      editableOpt = list(
        target = 'row', disable = list(columns = c(0:5)))){
      
      result_dt <- datatable(
        input_df,rownames= TRUE,
        options = list(
          dom = 'Bfrtip', scrollX = TRUE,
          lengthMenu = c(10, 20, 50),
          pageLength = 10), editable = editableOpt)
      
      return (result_dt)
    }
    

    运行上面的时候,设置editableOpt = FALSE,应该给你第一个函数;将其保留为默认值以使其等效于第二个功能。

    最好, 最大

    【讨论】:

    • 那么我仍然必须拥有几乎两个相同的代码块。其中一个比另一个稍长。
    • 感谢您的反馈,请参阅编辑后的答案。让我知道它是否有效
    • 是的,我认为这可行,接受谢谢。
    猜你喜欢
    • 2016-07-16
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2015-02-17
    • 2016-01-10
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多