Как инициализировать начальные значения в DropDown, используя Jquery - PullRequest
0 голосов
/ 30 июля 2010

Шесть Пять Три Один

И у меня есть контроллер:

    DBEntity context = new DBEntity(); // My EntityModel
    public ActionResult Index()
    {
        return View();
    }

    public JsonResult GetStartValues()
    {
        var b = context.MyTable.ToList();
        return Json(ConvertObj(b));
    }
    private object ConvertObj(List<MyTable> lst)
    {
        var list = new object[lst.Count];
        for (int i = 0; i < lst.Count; i++)
        {
            list[i] = new { value = lst[i].MyValue, name = lst_meals[i].MyText };
        }
        return list;
    }

Мой вопрос: как инициализировать эти значения в качестве начальных значений , используя jQuery .Я могу использовать решение как это:

    public ActionResult Index()
    {
        var model = context.MyTable.ToList()
        return View(model);
    }

В .aspx

   <select id="myDropdown" name="myDropdown"> 
   <% foreach(var obj in Model.MyTableList) {%>
   <option value="<%: obj.MyValue %>"><%: obj.MyText %></option>
   <% } %>

Но я хочу использовать Jquery для этого)

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

 $(document).ready(function () {
     $.post("/GetStartValues/", { }, function (data) {
       populateDropdown($("#[id*='myDropdown']"), data);
     });
 }

 function populateDropdown(select, data) {
        select.html(''); //clear all items
        $.each(data, function (id, option) {
            select.append($('<option></option>').val(option.value).html(option.name));
        });
 }

Но это не работает.Я хочу вставить значения в DropDown с помощью запроса Jquery, как только страница загрузится.

1 Ответ

0 голосов
/ 30 июля 2010

Ваш контроллер возвращает правильный Ajax?

Я не уверен, что делает ваш ConvertObj, но, если вы правильно возвращаете Ajax, тогда этот jQuery должен работать.

$.ajax({
            url: '/GetStartValues/',
            type: 'POST',
            data: {
            },
            success: function (data) {
                $('#myDropdown').html('');
                for (var i=0; i < data.length; i++) {
                    $('#myDropdown').append($('<option></option>').attr('value', data[0].value).text(data[0].name));
                }
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...