Is it possible to generate widgets based on an other widget ? JSServe

Hello,

I am still new to Julia and use it mainly for physics simulations.

I am generating a dahboard from a csv file. The idea is to explore the csv file using widgets (to get the value of the last collumn at a specific row by using widgets to select it). In order to generate the rigth amount of widget I use metaprogramming. Example:

    for i in 1:Ncol-1
        if length(tab_list[i]) > 1
            if isa((tab_list[i][1]), AbstractString)
                symbolname = Symbol("sl_$(var_list[i])")
                @eval $symbolname = $(D.Dropdown("$(var_list[i])", tab_list[i]) ) 
                @eval push!(sl_list, $symbolname )
                push!(sl_name, "sl_$(var_list[i])")
            else
                symbolname = Symbol("sl_$(var_list[i])")
                @eval $symbolname = $(D.Slider("$(var_list[i])", tab_list[i]))
                @eval push!(sl_list, $symbolname )
                push!(sl_name, "sl_$(var_list[i])")
            end
            symbolname = Symbol("check_$(var_list[i])")
            @eval $symbolname = $(D.Checkbox("", false))
            @eval push!(check_list, $symbolname)
            push!(check_name, "check_$(var_list[i])")
            push!(var_list_sl, "$(var_list[i])")
            global N_wid += 1
        end
    end
    for wid in 1:N_wid
        eval(quote
                on($(check_list[wid]).widget.value) do x
                    dist = zeros(Nrow)
                    for r=1:Nrow
                        for c=1:N_wid
                            dist[r] += Int(df[r, Symbol(var_list_sl[c])] == sl_list[c].widget.value[])*(1 + Int(check_list[c].widget.value[])*100)
                        end
                    end
                    idx = findmax(dist)[2]
                    for c=1:N_wid
                        if sl_list[c].widget.value[] != df[idx, Symbol(var_list_sl[c])]
                            if !isa(sl_list[c].widget.value[], AbstractString)
                                sl_list[c].widget[] = df[idx, Symbol(var_list_sl[c])]
                            else
                                sl_list[c].widget.value[] = df[idx, Symbol(var_list_sl[c])]
                            end
                        end
                    end
                    global fn[] = string(df[idx,:fn])*"/"
                end
            end)
    end

But I need to load the csv file first to generate the number of widget. I would like to use another widget to select the csv file and then generate the rest of the dashboard (other widgets and etc…).
I was wondering if it is doable ? and, if it possible, do you have a link toward an example or a reference ?

Thank you for your help,

Best,