Заполнить модальную диалоговую форму jQuery

#asp.net #jquery #ajax #webforms

#asp.net #jquery — jquery — запрос #аякс #веб-формы #jquery #ajax

Вопрос:

У меня есть приложение, которое содержит gridview. Когда пользователь выбирает один из элементов из gridview, я хочу иметь возможность отображать диалоговое окно jQuery, которое содержит форму с некоторой предварительно заполненной информацией из выбранного элемента из gridview. Прямо сейчас у меня есть div с некоторыми текстовыми полями html, который настроен как модальное диалоговое окно. Пользователь нажимает на нее, и идентификатор выбранного элемента легко получить. Проблема возникает, когда я хочу перейти к базе данных, получить некоторые сведения, затем предварительно заполнить некоторые текстовые поля и другие элементы перед отображением диалогового окна пользователю.

Простое сравнение заключается в том, что пользователь нажимает на элемент, чтобы отправить форму для обработки с уже заполненными некоторыми элементами из выборки. Мне было интересно, какой самый простой способ сделать это. Прямо сейчас у меня есть это так, что при выборе элемента из gridview используется jQuery для создания Ajax post с идентификатором [WebMethod] в коде позади, где он затем может выйти из базы данных и получить все детали записи. Проблема в том, что по очевидным причинам веб-метод не может волшебным образом заполнить поля формы. Я мог бы отправить обратно всю информацию в ajax-запрос для заполнения, но это также кажется довольно запутанным, потому что нет реальной надежной связи между случайными данными, которые я отправляю обратно, и полем, к которому они принадлежат.

Многое из этого я обдумываю вслух, но мне действительно интересно лучше понять, как использовать jQuery и Ajax внутри ASP.NET .

Спасибо вам за вашу помощь и ваш вклад.

Ответ №1:

добавьте атрибут на кнопку gridview:

   btn.Attributes.Add("onclick","ShowDialog();");
  

клиентский скрипт

  function ShowDialog(){
      //setup the dialog
$('#dialog).setup(function(){
   ......,
   buttons: "OK", function(){
     //save by calling btn2.click() where btn2 is a hidden button that handles save logic in server side
});
});
      $('#dialog').show();
    return false;
    });
  

Комментарии:

1. Проблема заключается не в отображении диалогового окна, а в заполнении диалогового окна формой, некоторые элементы которой заполнены из вызова базы данных. Я хочу знать, есть ли хороший способ заполнить эти элементы формы вместо создания html формы при вызове ajax.

2. да, на самом деле диалоговое окно показывает html, поэтому то, что вы можете сделать, это создать скрытый div с вашей формой и серверными элементами управления внутри него. вы заполняете поля на стороне сервера, а затем используете диалоговое окно для отображения div.

3. Проблема с этим решением заключается в том, что серверные элементы управления должны извлекать информацию после начальной загрузки страницы. Страница загружается с помощью gridview, где пользователь выбирает один, который запустит модальное диалоговое окно. Заполнение информации на стороне сервера, когда элементы управления скрыты внутри div на странице, заключается в том, что они не могут быть заполнены с помощью программирования на стороне сервера динамически при нажатии на gridview.