Обновление выпадающего списка из кода с использованием Javascript / JQuery

0

У меня есть приложение с двумя разделами.

В верхней части находится dropdownlist список, в котором отображаются все члены database с использованием метода кода, который вызывается при page load.

В нижней части есть сетка, в которой вы можете add/delete/edit элементы с помощью JQuery. Изменение этого раздела, очевидно, не перестраивает выпадающий список в верхнем разделе.

Я хочу запустить некоторый код в методе успеха JQuery который updates/rebuilds dropdownlist список, чтобы отразить новое изменение члена. Я хотел бы по возможности использовать тот же код за методом, который попадает в db на page_load чтобы populate выпадающий список.

Это возможно? Если да, то как я могу это сделать?

Любая помощь будет принята с благодарностью.

[Запрошенный код]
.aspx файл

<asp:DropDownList ID="director" runat="server"></asp:DropDownList> 
 jQuery success() fired on add/delete/update member grid.

.aspx.cs (код позади)

private void LoadDirectorOptions(int deptId)  
{
            var memberRepo = new MemberRepository();  
            List<Member> members = memberRepo.GetMembers(deptId);

            director.DataSource = members;
            director.DataTextField = "FullName";
            director.DataValueField = "Id";
            director.DataBind();
            director.Items.Insert(0, new ListItem("<Please Select>", "0")); 

}
Теги:
drop-down-menu
code-behind

3 ответа

2
Лучший ответ

Вы не можете использовать один и тот же метод кода, так как это код на стороне сервера, а код JQuery происходит на стороне клиента, если вы не обновите страницу после выполнения кода JQuery. Вы можете grape всех членов на той же веб-службе, которую вы предоставляете для обновления сетки.

вниз. например:

  $.ajax({
      // Updating the grid here and retrun all the members : it will be saved in the response
      type: "Get",
      url: url,
      data: data,
      dataType: dataType,
      success: success(data)
    });

    function success(data)
    {
      //here you can get the resposne from the server
      // Iterate through data and add option elements
      $(".members").append("<option value=? text=?/>");

    }

Скорее всего, ваши данные должны быть JSON котором есть все члены в таблице базы данных членов вашего сервера. то вы можете добавить класс CSS (участников) в раскрывающийся список и использовать селектор JQuery для выбора раскрывающегося списка.

Надеюсь, это полезно.

  • 0
    Это именно то, что я искал. Спасибо.
1

Если вы хотите обновить раскрывающийся список без обновления всей страницы, вам необходимо обернуть их внутри UpdatePanel. Когда сетка в нижней части будет изменена, обновите UpdatePanel, чтобы она перепроверила выпадающий список. Чтобы принудительно обновить UpdatePanel в Javascript, вы можете использовать метод GetPostBackEventReference, чтобы принудительно выполнить обратную передачу:

<%= Page.ClientScript.GetPostBackEventReference(updatePanelID, "")%>
  • 0
    Могу ли я обновить панель обновления из Javascript / JQuery? Если так, как бы я поступил так?
  • 0
    @nmat Жаль, что я не могу понизить вас даже за предложение обновить панель. Пожалуйста, перейдите по предложенной мной ссылке и изучите настоящий ajax.
Показать ещё 2 комментария
1

Должен использовать ajax в вашем вызове метода вызова для вызова. http://api.jquery.com/jQuery.ajax/

  • 0
    Я думал, что контроль может быть решением. Я просто не уверен, как использовать его, чтобы перестроить элемент управления страницы с помощью метода кода позади. Вы можете остановиться на этом?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню