How to get a property value from database based on cascaded drop down list selected values??

后端 未结 2 1244
星月不相逢
星月不相逢 2021-01-28 05:31

I want to get a property of an entity based on passing id\'s of selected items from cascaded dropdown list...On every change in level 1 or in level 2 of cascaded

相关标签:
2条回答
  • 2021-01-28 06:09

    Please try this code. Give reference of my javascript comments where you think I have still mis-understood the question.

    <script type="text/javascript">
        var leaguedivisionUrl = '@Url.Action("Fetchleaguedivision")';
        var updatePrice = '@Url.Action("updatePrice")';
        var divisions = $('#SelectedLeagueDivision');
    
        function bindLeagueDivisionData(data) {
            divisions.empty();
            $.each(data, function(index, item) {
                divisions.append($('<option></option>').val(item.Value).text(item.Text));
            });
        }
    
        function getUpdatedPrice(leagueId, divisionId) {
            $.getJSON(updatePrice, {
                LeagueDivisionId: divisionId,
                LeagueId: leagueId
            }, function(data) {
                if (!data) {
                    return;
                }
                alert(data);
                //document.getElementById('#message').innerHTML = data;
            });
        }
    
        $('#SelectedLeague').change(function() {
            if (divisions.find("option").length == 0) {
                /*The division list is empty, fetch the divisions*/
                $.getJSON(leaguedivisionUrl, {
                    ID: $(this).val()
                }, function(data) {
                    if (!data) {
                        return;
                    }
                    /*Once division data is bound, get the price for the league and first selected division. If you choose to leave first division as empty, your wish; just remove the contents of done in that case*/
                    $.when(bindLeagueDivisionData(data)).done(function() {
                        getUpdatedPrice($(this).val(), $('#SelectedLeagueDivision'));
                    });
                });
            } else {
                /*Divisions are already present just get the price for the combination*/
                getUpdatedPrice($(this).val(), $('#SelectedLeagueDivision'));
            }
        });
    
        $('#SelectedLeagueDivision').change(function() {
            /*Get the price for the combination*/
            getUpdatedPrice($('#SelectedLeague').val(), $(this).val());
        });
    </script>
    
    0 讨论(0)
  • 2021-01-28 06:20

    I have implemented successfully in this way.

    @using (Html.BeginForm("PriceCalculatorIndex", "PriceCalculator", FormMethod.Post,
                                          new { enctype = "multipart/form-data" }))
    {
    
        <div>
            @Html.LabelFor(m => m.SelectedLeague, new { @class = "control-lebel" })
            @Html.DropDownListFor(m => m.SelectedLeague, Model.LeagueList, new { @class = "form-control" })
            @Html.ValidationMessageFor(m => m.SelectedLeague)
        </div>
        <div>
            @Html.LabelFor(m => m.SelectedLeagueDivision, new { @class = "control-lebel" })
            @Html.DropDownListFor(m => m.SelectedLeagueDivision, Model.LeagueDivisionList, new { @class = "form-control" })
            @Html.ValidationMessageFor(m => m.SelectedLeagueDivision)
        </div>
        <div>
            <label>
                price :
            </label>
            <span id="spPrice"></span>
        </div>
    }
    <!-- JS includes -->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
    <script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
    <script src="//ajax.aspnetcdn.com/ajax/mvc/4.0/jquery.validate.unobtrusive.min.js"></script>
    <script type="text/javascript">
        $(function () {
            LoadDivisionsAndPrice()
        });
        var leaguedivisionUrl = '@Url.Action("Fetchleaguedivision")';
        var updatePrice = '@Url.Action("updatePrice")';
        var divisions = $('#SelectedLeagueDivision');
        $('#SelectedLeague').change(function () {
            LoadDivisionsAndPrice();
        });
        $('#SelectedLeagueDivision').change(function () {
            LoadPrice();
        });
        function LoadPrice() {
            $.getJSON(updatePrice, { LeagueId: $('#SelectedLeague').val(), LeagueDivisionId: $('#SelectedLeagueDivision').val() }, function (data) {
                if (!data) {
                    return;
                }
                document.getElementById('spPrice').innerText = data.Price;
            });
        }
        function LoadDivisionsAndPrice()
        {
            divisions.empty();
            $.getJSON(leaguedivisionUrl, { ID: $('#SelectedLeague').val() }, function (data) {
                if (!data) {
                    return;
                }
                divisions.append($('<option></option>').val());
                $.each(data, function (index, item) {
                    divisions.append($('<option></option>').val(item.Value).text(item.Text));
                });
                LoadPrice();
            });
        }        
    </script>
    

    0 讨论(0)
提交回复
热议问题