Каскадный DropDownList GridView ObjectDataSource - PullRequest
0 голосов
/ 05 декабря 2011

Моя страница содержит каскадный DDL и сетку, которая работает в чистом виде ajax. GridView берет данные из sqlDataSouce, которые применяют хранимую процедуру, которая принимает значения DDL в качестве параметров. когда я выбираю значение в DDL, представление сетки меняет свои данные без обновления всей страницы.

вчера мне пришлось изменить хранимую процедуру, и по какой-то причине у sqlDataSource начались проблемы с получением данных.

поэтому после многих попыток заставить его работать, я наконец-то попытался использовать ObjectDataSource, который сумел правильно запустить хранимую процедуру и получить данные. но теперь, когда я выбираю значение в DDL, я получаю Page Error, и GridView остается как есть.

кто я могу заставить его работать? (я не нашел удовлетворительного ответа, когда искал) Большое спасибо: -)

1 Ответ

0 голосов
/ 05 декабря 2011
 cascading Country and state DDL
    @Html.DropDownListFor(model => model.CountryId, Model.CountryList, "--Select Country--", new { @class = "CountryList", style = "width:150px" })

     @Html.DropDownListFor(model => model.StateId, Model.StateList, "--Select State--", new { @class = "StateList", style = "width:150px" })

    <script type="text/javascript">
        $(document).ready(function () {
            $.post("/Client/GetModels", { id: $(".CountryList").val() }, function (data) {
                populateDropdown($(".StateList"), data);
            });
            $(".CountryList").change(function () {
                $.post("/Client/GetModels", { id: $(this).val() }, function (data) {
                    populateDropdown($(".StateList"), data);
                });
            });
        });

        function populateDropdown(select, data) {
            $(".StateList").empty();
            $.each(data, function (id, option) {
                $(".StateList").append("<option value='" + option.StateId + "'>" + option.State + "</option>");
            });
        }
    </script>
...