Widget com campos dinâmicos

Olá pessoal, tudo joia?

Eu normalmente desenvolvo minhas automatizações através do BPM, porém, agora surgiu a necessidade de eu desenvolver algumas widgets. Como não desenvolvo sempre, estou com algumas dúvidas ainda…

A widget que eu preciso desenvolver vai precisar consultar um dataset que lista alguns usuários. Preciso que ao listar, eu possa flegar apenas 1 deles numa radio button por exemplo. Depois, vou gravar essas informações em uma base SQL.

A minha principal dificuldade hoje é como fazer com que o fluig carregue essas rádios conforme a quantidade de registros no dataset. Vi que o pai x filho não funciona nesses casos…

Alguém teria algum exemplo para me ajudar?

Vlw pessoal!

Você pode usar document.createElement pra ir criando os campos no HTML ou usar o método append da JQuery e passar direto o HTML.

Um exemplo de como seria com Select:

const usuariosDataset = sua_consulta_dataset;
const options = [];

for (let usuario of usuariosDataset.values) {
    options.push(`<option value="${usuario.matricula}">${usuario.nome}</option>`);
}

$("#id_do_pai_do_select")
    .append(
        '<select id="usuario" name="usuario">'
        + options.join('')
        + '</select>'
    );
1 curtida

Olá Bruno,

A solução que você indicou deu certo!

Dei uma modificada no meu código mas no final consegui fazer o que estava planejando.

Estou postando o código aqui para ajudar nossos amigos que queiram fazer algo semelhante.

    	var dataset = DatasetFactory.getDataset("colleague", null, null, null);

    	for (var i = 0; i < dataset.values.length; i++) {
    		//1 Cria os objetos
    	    var radioButton = document.createElement('input');
    	    radioButton.type = 'radio';
    	    radioButton.name = 'opcao';
    	    
    	    //2 Cria a label
    	    var label = document.createElement('label');
    	    label.appendChild(radioButton);
    	    label.appendChild(document.createTextNode(dataset.values[i]['login']));
    	    
    	    //3 Atribui valor
    	    radioButton.value = dataset.values[i]['mail'];
    	    
    	    // Adicione o radiobutton ao elemento pai (container)
    	    var container = document.getElementById('container');
    	    container.appendChild(label);
}
HTML
<div id="container"></div>

Super obrigado pela ajuda!