Загрузка пользовательских элементов управления ASP.Net через jQuery AJAX - PullRequest
2 голосов
/ 15 сентября 2010

У меня есть мини-модули (например, iGoogle), которые в настоящее время загружаются через страницу, вызывающую метод LoadUserControl и загружающую этот элемент управления в PlaceHolders.Мне нужно переключить эту реализацию на загрузку элементов управления через JJuery AJAX-запрос.В настоящее время проблема заключается в том, что когда я выполняю AJAX Get, я могу загрузить модули, добавляя их к контенту, но при этом отсутствует какая-либо функциональность, которая в противном случае работала бы с нормально загруженным элементом управления.Например, когда я выбираю другую опцию в DDL, страница обновляется и ничего не меняется.Я подозреваю, потому что это потому, что методы не связаны, когда я выполняю загрузку через AJAX.Кроме того, когда я использую этот метод, мой флэш-контент не загружается.

Я что-то здесь не так делаю или есть лучшее решение?

 $.ajax({
   url: '/modules/UserModules.aspx?CID=12345',
    type: "GET",
    dataType: "html",
    success: function(data) {
        $('#column1').append($(data).find('div#lm li'));
        $('#column2').append($(data).find('div#cm li'));
        $('#column3').append($(data).find('div#rm li'));
        alert('Load was performed.');
    }

});

Ответы [ 2 ]

2 голосов
/ 15 сентября 2010

Когда вы отправляете сообщение обратно на сервер, сервер не знает о вашем пользовательском элементе управления, поскольку он был добавлен на страницу динамически.Фактически, вы визуализируете HTML UC, а затем добавляете часть визуализированного HTML на свою страницу.

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

0 голосов
/ 18 сентября 2010

Я не уверен, что вижу утилиту в использовании UC для этого.Есть несколько способов сделать это.Как сказал Джейми, у вас может быть простая страница .aspx, которая использует веб-методы.Страница asmx.Вы также не можете использовать веб-методы и просто делать то же самое, что и с php или классическим ASP, записывая свои строковые результаты напрямую и обрабатывая их (хотя не должен быть вашим первым выбором!)

Но самое важное, что вы можете из этого извлечь, это отладка.Поставьте точку останова в своем коде UC для отслеживания на стороне сервера.Используйте Firebug: откройте его, выберите консоль и посмотрите, действительно ли ваши GET-запросы выполняют то, что им нужно.В наши дни вам редко требуется предупреждение для отладки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...