Как я могу установить текущее значение и имя в select с помощью dojo? - PullRequest
3 голосов
/ 14 февраля 2020

Я создаю функцию с именем и идентификатором m Выберите:

function loadDataFiltrosTipoFunc(Memory) {
    var statusStoreMotivo = new Memory({
            data: [
                    { name: "Todos", id: 0 },
                    { name: "Cobrança", id: 1 },
                    { name: "Aniversariantes", id: 2 }
            ]
    });
    dijit.byId("pesqFuncMotivo").store = statusStoreMotivo;
    dijit.byId("pesqFuncMotivo").set("value", TODOS);
};

При вызове для создания нового регистра, покажите мне варианты в форме.

Моя проблема заключается в том, что при вызове "Edit" у меня есть идентификатор сохранения в реестре, но я не могу задать имя значения и показать другие параметры, которые нужно изменить в Edit.

Я сделал это: (Есть комментарии в коде с моим вопросом более подробно)

function EditarMensagem(itensSelecionados) {
    try {
        // first i check if any iten is selected (ItensSelecionados)
        // If is ckeked and no has value show message ask to select only one
        // else, if is selected only one and has value continue
        if (!hasValue(itensSelecionados) || itensSelecionados.length == 0)
            caixaDialogo(DIALOGO_AVISO, 'Selecione um registro para Editar.', null);
        else if (itensSelecionados.length > 1)
            caixaDialogo(DIALOGO_ERRO, 'Selecione apenas um registro para Editar.', null);
        else {

            // Here i Check the value of the select and put the name
            // I don´t shure if is the best way
            if (itensSelecionados[0].motivo = 0) {
                var motivo = "Aniversariantes";
            }
            if (itensSelecionados[0].motivo = 1) {
                var motivo = "Cobrança";
            }

            // Here in 'tipoSmsCompor' is my Select.
            // I try put the var motivo, 
            // but don´t set the name, and don´t show the other options of the list
            // declared in the function loadDataFiltrosTipoFunc(Memory)
            // How I can set the current value and name in the select and the other option to the user can change?
            dijit.byId( 'tipoSmsCompor' ).attr( 'value', itensSelecionados[0].motivo);
            dijit.byId("dc_assunto").set("value", itensSelecionados[0].mensagem);
            dijit.byId("cad").show();
            IncluirAlterar(0, 'divAlterarMensagem', 'divIncluirMensagem', 'divExcluirMensagem', '', 'divCancelarMensagem', 'divClearMensagem');
        }

    } catch (e) {
        postGerarLog(e);
    }
}

Как я могу установить текущее значение и имя в select и другие опции для пользователь может изменить?

Я хочу установить возвращаемое значение и показать мне другой параметр в funcion loadDataFiltrosTipoFunc, но с возвращенным значением.

Спасибо всем.

1 Ответ

2 голосов
/ 17 февраля 2020

Установленное значение работает напрямую, используя метод set для выбора

. В следующем фрагменте я установил измененное значение как из select, так и из Registry. (через некоторое время)

require([
  'dojo/store/Memory',
  'dojo/data/ObjectStore',
  'dijit/form/FilteringSelect',
  'dijit/registry',
  'dojo/domReady!'
], function(Memory, ObjectStore, Select, Registry) {

  var statusStoreMotivo = new Memory({
    data: [
      { name: "Todos", id: 0 },
      { name: "Cobrança", id: 1 },
      { name: "Aniversariantes", id: 2 }
    ]
  });
  
  var select = new Select({
  }, 'select');
  
  select.set("store",statusStoreMotivo);
  select.set("value", 1);

  setTimeout(function(){
    Registry.byId("select").set("value", 2)
  }, 3000 );

});
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/dojo/1.12.1/dijit/themes/claro/claro.css" />

<script>
  window.dojoConfig = {
    parseOnLoad: false,
    async: true
  };
</script>


<script src="//ajax.googleapis.com/ajax/libs/dojo/1.12.1/dojo/dojo.js"></script>

<body class="claro">
  <div id="select"></div>
</body>
...