3 messaggi dal 17 giugno 2021
salve a tutti ho un problema con l' aggiornamento di una dropdwonlist collegata ad un altra drop down list

la mia view è
<form asp-action="DipendentiModifica" id="FormAggDip" asp-route-id="@Model.Id" method="post" onsubmit="return jQueryAjaxAggDip(this);">
    <div asp-validation-summary="ModelOnly" class="text-danger"></div>
    <input type="hidden" asp-for="Id" />

    @*Titoli Schede*@
    <div class="modal-header">
        <div class="tabbable">
            <ul class="nav nav-tabs" role="tablist" style="background: #93BA09 ">
                <li class="nav-item"><a class="nav-link text-body" href="#tab1" data-toggle="tab">Dati Anagrafici</a></li>
                <li class="nav-item"><a class="nav-link text-body" href="#tab2" data-toggle="tab">Dati Contrattuali</a></li>
                <li class="nav-item"><a class="nav-link text-body" href="#tab3" data-toggle="tab">Assunzioni</a></li>
            </ul>
        </div>
    </div>

    <div class="tab-content">
        <div class="tab-pane active" id="tab1">
            @*Scheda Generale*@
            <div class="tab-pane active" id="tab1">
  ...........


        </div>
        @*Dati Contrattuali*@
        <div class="tab-pane" id="tab2">
            @*Riga 1*@
            <div class="row">
                <div class="col-sm-5">
                    <div class="form-group">
                        <label class="control-label">Cantire di Lavoro</label>
                        <select class="form-control" id="Cantiere" name="Idcantiere" asp-for="Idcantiere" asp-items="ViewBag.DropCantieri">
                        </select>
                    </div>
                </div>
                <div class="col-sm-5">
                    <div class="form-group">
                        <label class="control-label">Comune del Cantiere</label>
                        <select class="form-control" id="ComuniCantiere" name="Idcomune" asp-for="Idcomune" asp-items="ViewBag.DropComuniCantiere"></select>
                    </div>
                </div>
            </div>
        </div>

        @*Assunzioni*@
        <div class="tab-pane" id="tab3">
 ......
            </div>
        </div>
    </div>

    <div class="modal-footer">
        @*Pulsante Modifica*@
        <div>
            <input type="submit" value="Conferma Modifica" form="FormAggDip" class="btn btn-primary" ; return true;" />
        </div>
    </div>
</form>

il controller è

//GET
        public async Task<IActionResult> DipendentiModifica(Guid? Id, Guid SelectedCantiere)
        {
            if (Id == null || Id == Guid.Empty)
            {
                return View(new Dipendente());
            }

            var DipendentiModifica = await context.Dipendenti.FromSqlRaw("SELECT * FROM Dipendenti").FirstOrDefaultAsync(m => m.Id == Id);

            if (DipendentiModifica == null)
            {
                return NotFound();
            }

            if (SelectedCantiere == Guid.Empty)
            {
                SelCantiere = DipendentiModifica.Idcantiere.ToString();
            }
            else
            {
                DipendentiModifica.Idcantiere = SelectedCantiere;
                SelCantiere = SelectedCantiere.ToString();
            }
            ViewBag.DropCantieri = new SelectList(GetDropCantieri(), "ID", "Denominazione"); // Viewbag
            ViewBag.DropComuniCantiere = new SelectList(GetDropComuniCantiere(SelectedCantiere= new Guid(SelCantiere)), "ID", "Denominazione"); // Viewbag

            return View(DipendentiModifica);
        }

//POPOLO la DropDownList Cantieri
        public IEnumerable<DropCantiere> GetDropCantieri()
        {
            var ListResult = context.DropCantieri.FromSqlRaw("SELECT ID, Denominazione FROM Cantieri").ToList();
            return ListResult;
        }
//POPOLO la DropDownList Cantieri
        public IEnumerable<DropComuneCantiere> GetDropComuniCantiere(Guid SelectedCantiere)
        {
            if (SelectedCantiere != Guid.Empty)
            {
                SelCantiere = SelectedCantiere.ToString();
            }

            Console.WriteLine(SelCantiere);
            var ListResult = context.DropComuniCantiere.FromSqlRaw("SELECT dbo.Comuni.ID, dbo.Comuni.Denominazione FROM Cantieri INNER JOIN Comuni ON Cantieri.IDComune = Comuni.ID " +
                "WHERE (Cantieri.ID= '"+ SelCantiere +"')").ToList();
            return ListResult;
        }


e lo script è
    $(document).ready(function () {
        $("#Cantiere").on("change", function () {
            var SelectedCantiere = $("#Cantiere").val();
        $.ajax
            ({
                type: 'GET',
                url: "GetDropComuniCantiere",
                data: { SelectedCantiere: SelectedCantiere },
                success: function (res) {
                    $('#tab2').tab('show');
                },
                error: function (err) { console.log(err) }
            }),
       function (err) { console.log(err) };
        });
    });

quindi on change aggiorno il GetdropComuniCantieri e riesco a dare il nuovo valore al SelectdeCantiere , ma non so cosa devo scrivere in success per aggiornare la dropdownlist nella view ho provato con
                    $('#tab2').tab('show');

ma non funziona
ho provato
                    $('#ComuniCantiere').modal('show');

ma niente.
Come direbbe Checco Zalone Dove ho sbagliato?

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.