0

Continúo desarrollando mi primera aplicación c# MVC, que trata sobre el registro de incidencias en equipos informáticos.

En mi vista tengo 2 listas desplegables, la primera es para seleccionar El Departamento donde se encuentra ubicado el equipo y la segunda es para la Oficina de ese Departamento. Al seleccionar el departamento mediante el siguiente código se actualiza la lista de Oficinas:

$("#cboDpto").change(function () {
    const dptoId = $(this).val();
    $.ajax(
        {
            url: '/RT/ObtenerOficinas?IdDpto=' + dptoId,
            type: 'POST',
            data: "",
            contentType: 'json; charset=utf-8',
            success: function (data) {
                $('#cboOficina').find("option").remove();
                $(data).each(function (i, row) {
                    $('#cboOficina').append('<option value="' + row.IdOficina + '">' + row.Oficina + '</option>');
                })
            },
        }
    )
});

Todos los equipos de la institución tienen un código, en la vista hay una caja de texto donde se ingresa ese código de equipo, al ingresar dicho código, la aplicación busca en la tabla de inventarios el código de ese equipo y muestra sus características, entre ellas en que departamento y oficina está ubicado el equipo, mediante este código se realiza:

$("#codigo").change(function () {
    const codigo = $(this).val();
    $.ajax(
        {
            url: '/RT/ObtenerInventarioRT?codigo=' + codigo,
            type: 'POST',
            data: "",
            contentType: 'json; charset=utf-8',
            success: function (data) {
                var NroReg = Object.keys(data).length;
                if (NroReg == 1) {
                    $('#Serie').html(data[0].Serie);
                    $('#Marca').html(data[0].Marca);
                    $('#Modelo').html(data[0].Modelo);
                    $('#Dpto').html(data[0].Dpto);
                    $('#Oficina').html(data[0].Oficina);
                }
            },
        }
    )
});

Para que la lista desplegable Departamentos se muestre seleccionado de acuerdo a lo recuperado de la tabla de inventarios, después de la línea:

$('#Oficina').html(data[0].Oficina);

agregué el siguiente código:

$("#cboDpto").val(data[0].IdDpto);

Para que se actualice la lista de Oficinas, a continuación del anterior agregué el siguiente código:

$selectDpto = $('#cboDpto');

$selectDpto.trigger('change');

Hasta aquí todo funciona bien.

Al igual que con los departamentos, agregué el siguiente código para que la lista de Oficinas muestre la selección que corresponde:

$("#cboOficina").val(data[0].IdOficina);
alert($('#cboOficina').val());

Sin embargo me doy con la sorpresa que en este caso no funciona, por eso agregué el alert para confirmar, el valor que me muestra el alert es null.

También verifiqué que el id de Oficina retorne un valor correcto:

alert(data[0].IdOficina);

Cuál puede ser el problema y la solución?

Gracias por la atención.

0

Examina otras preguntas con la etiqueta o formula tu propia pregunta.