Может ли ASP.NET Частичный рендеринг AJAX работать внутри страницы приложения SharePoint 2007?
-
08-06-2019 - |
Вопрос
У меня есть простая страница с моим ScriptManager
и мой UpdatePanel
, и мой ContentTemplate
имеет один ListBox
и один Ярлык.Я просто пытаюсь уловить его OnSelectionChanged
таким образом, я могу обновить текст в Label
.Независимо от того, какие настройки я пытаюсь настроить, я всегда получаю обратную публикацию на всю страницу.
Это действительно не сработает, или я просто все испортил?
Решение
У вас должен быть Sharepoint 2007 с пакетом обновления 1, иначе у вас нет никаких шансов.(Sharepoint 2007 предшествовал ajax 1.0 - они встроили некоторую поддержку в пакет обновления 1)
Далее, с точки зрения устранения неполадок, проверьте, что точный тот же код функционирует, как и ожидалось, при размещении на обычной странице asp.net.(Буквально скопируйте и вставьте ваш код на новую страницу, чтобы исключить любые типографские ошибки).Включение sharepoint в проблемную область или исключение из нее поможет сузить пространство для решения.
Другие советы
Если вы установили SharePoint 2007 (без пакета обновления 1), то вы можете последовать примеру, подобному следующей статье:
AjaxBasePart Часть:Easy ASP.NET Расширения AJAX 2.0 1.0 и Office SharePoint Server 2007
Причина этого в том, что существует конкретная проблема со смешиванием doPostBack, UpdatePanel и SharePoint - и симптом - это именно то, что вы видите:обратная передача на всю страницу вместо асинхронной обратной передачи.Смотрите эту статью KB, чтобы найти обходной путь: Веб-часть, содержащая элемент управления ASP.NET AJAX 1.0 UpdatePanel, использующий _doPostBack() ...
В противном случае вы можете просто установить пакет обновления 1, чтобы устранить вашу проблему:
Windows SharePoint Services 3.0 с пакетом обновления 1 (SP1)
Существует конкретная проблема со смешиванием doPostBack, UpdatePanel и SharePoint - и симптом - это именно то, что вы видите:обратная передача на всю страницу вместо асинхронной обратной передачи.Смотрите эту статью KB, чтобы найти обходной путь: http://support.microsoft.com/kb/941955
Тодд Бликер из Mindsharp показал мне написанный им фрагмент кода, который может использовать Ajax в Sharepoint 2.0.Это было довольно круто.Я полагаю, что компания использовала его в своем программном обеспечении для управления сайтами sharepoint, если вы хотите взглянуть.(раньше вы могли запросить 30-дневную пробную версию).Бьюсь об заклад, как это сделать, есть в их группе yahoo (я не помню названия, но уверен, что если вы поищете mindsharp, то найдете его).
Отметим, что Ajax существует уже давно.Microsoft легко поддерживала его с 2002 года, возможно, раньше, с выпуском IE 5.5 (я не знаю о других браузерах, я занимался внутренней разработкой, и в то время мы поддерживали только ie).Просто это так не называлось.Термин Ajax - это не что иное, как маркетинговый термин, который кто-то придумал позже.
Получение последнего пакета обновления для SharePoint 2007 решит вашу проблему (и добавит полную поддержку AJAX).Без пакета обновления вам нужно будет следовать примеру, подобному описанному в этой статье:
AjaxBasePart Часть:Easy ASP.NET Расширения AJAX 2.0 1.0 и Office SharePoint Server 2007
Публикую это сообщение, чтобы люди знали, что есть ответ даже без последнего пакета обновления (в ответе secretGeek, похоже, говорится, что шансов нет).
С технологической точки зрения, пакет обновления 1 не делает добавьте полную поддержку для ASP.NET AJAX.Вам все равно нужно использовать обходные пути, описанные в различных статьях, упомянутых в предыдущих ответах.
В частности, вы должны убедиться, что веб-страницы.config для веб-приложения SharePoint был обновлен, чтобы поддерживать соответствующую версию ASP.NET Аякс расширений.
Тот факт, что web.config не был обновлен, был наиболее вероятной причиной проблемы, описанной в исходном вопросе.