Cascade DropDownList с использованием проблемы Jquery - PullRequest
0 голосов
/ 30 мая 2011

Итак, я нашел этот учебник, в котором был также исходный код примера, показывающего, как создать каскадный выпадающий список с использованием Jquery. Я пытался использовать этот код для моего собственного примера проекта, но, похоже, он не работал.

    public class IndexViewModel
    {
        //1st DDL ID
        public int grupa_id
        {
            get;
            set;
        }


        //1st DropDownList Values
        public List<SelectListItem> GrupeValues
        {
            get;
            set;
        }

        //2nd  DDL ID
        public int produs_id
        {
            get;
            set;
        }


        //2nd DropDownList Values
        public List<SelectListItem> ProduseValues
        {
            get;
            set;
        }
    }

Контроллер .:

    public ActionResult Blabla()
    {
        DataRepository objRepository = new DataRepository();

        IndexViewModel objIndexViewModel = new IndexViewModel();

        objIndexViewModel.GrupeValues = objRepository.GetGrupa();

        //Get the first item of the First drop down list(State ddl)
        string first = objIndexViewModel.GrupeValues[0].Value;

        //Get the City names based on the first Item in the State ddl
        objIndexViewModel.ProduseValues = objRepository.GetProduse(Convert.ToInt16(first));

        return View(objIndexViewModel);
    }

Тогда actiont, возвращающий jsonresult:

    public JsonResult Cities_SelectedState(int param)
    {
        DataRepository objRepository = new DataRepository();

        JsonResult result = new JsonResult();
        var vCities = objRepository.GetProduse(Convert.ToInt16(param));
        result.Data = vCities.ToList();
        result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
        return result;
    }

Вид:

       <script type="text/javascript">
           $(document).ready(function () {
               $("#grupa_id").change(function () {
                   var url = '<%= Url.Content("~/") %>' + "Home/Cities_SelectedState";
                   var ddlsource = "#grupa_id";
                   var ddltarget = "#produs_id";
                   $.getJSON(url, { param: $(ddlsource).val() }, function (data) {
                       $(ddltarget).empty();
                       $.each(data, function (index, optionData) {
                           $(ddltarget).append("<option value='" + optionData.Text + "'>" + optionData.Value + "</option>");
                       });

                   });
               });
           });

   </script>

<p>

  <%:Html.Label("Grupe:") %>
  <%:Html.DropDownListFor(m=>m.grupa_id, Model.GrupeValues) %>

  <%:Html.Label("Produse:") %>
  <%:Html.DropDownListFor(m=>m.produs_id, Model.ProduseValues)%>        
</p>

Где и что я делаю не так?

1 Ответ

0 голосов
/ 30 мая 2011

Вы звоните Home/Cities_SelectedState, но я не вижу, куда вы пропускаете int param в --- может быть, это то, чего вам не хватает.

...