级联DropDownList GridView ObjectDataSource

时间:2011-12-05 11:49:58

标签: ajax gridview objectdatasource cascadingdropdown

我的页面包含级联DDL和网格视图,它们使用纯粹的ajax。 GridView从sqlDataSouce获取数据,该数据应用以DDL值作为参数的存储过程。 当我在DDL中选择值时,网格视图会更改其数据而不刷新整个页面。

昨天我不得不更改存储过程,由于某种原因,sqlDataSource开始在获取数据方面遇到问题。

所以经过多次尝试使其工作后我终于尝试使用ObjectDataSource,它设法正确运行存储过程并获取数据。但是现在当我在DDL中选择值时,我得到Page Error并且GridView保持不变。

我能让它发挥作用吗? (当我搜索时,我找不到令人满意的答案) 非常感谢: - )

1 个答案:

答案 0 :(得分:0)

 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>