Ajax внутри веб-части MOSS 2007 - PullRequest
0 голосов
/ 04 августа 2010

Я создаю веб-часть в MOSS 2007, которая содержит автозаполнение.

У меня есть сайт с поддержкой ajax, добавив все конфиги в web.config (пример здесь )

Мой веб-сервис:

    [System.Web.Script.Services.ScriptService]
    public class AutoComplete : System.Web.Services.WebService
    {
        [System.Web.Services.WebMethod]
        [System.Web.Script.Services.ScriptMethod]
        public string[] GetCompletionList(string prefixText, int count)
        {
                    List<string> results = new List<string>();
                    results.Add("Here");
                    results.Add("Here");
                    results.Add("Here");
                    results.Add("Here");
                    results.Add("Here");
                    results.Add("Here");
                    results.Add("Here");
                    return results.ToArray();
         }
   }

Я могу подключиться к веб-службе из веб-браузера. Однако autocompleteextender не вызывает мой веб-сервис.

URL моего веб-сервиса: http://[myserver]/AutoComplete.asmx (я использовал это для ServicePath расширителя). Страница моей веб-части: http://[myserver]/Pages/mypage.aspx

Я также попытался добавить calendarextender на страницу, и календарь отображается под текстовым полем и отображается как встроенный html. Weird.

Любая мысль будет полезна.

Спасибо

Ответы [ 2 ]

0 голосов
/ 04 августа 2010

Я не могу понять, зачем вам нужен веб-сервис, если вы используете AJAX? Вы можете просто поместить код в вашу веб-часть (или что-то еще, что вы создаете) и выполнить обратную передачу внутри панели обновления, чтобы получить значения. Гораздо проще реализовать / установить / отладить / поддерживать.

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

Имейте в виду, что вы также должны добавить менеджер скриптов на страницу, используя код или разметку главной страницы, иначе он не будет работать, независимо от того, есть ли у вас дополнения AJAX к web.config или нет

0 голосов
/ 04 августа 2010

По URL-адресу веб-службы вы, похоже, поместили веб-службу в корневую папку своего сайта. Это не будет работать, так как эта папка обрабатывается SharePoint VirtualPathProvider, который будет искать файлы в базе данных контента.

Вы должны поместить свой веб-сервис в подкаталог или в 12Hive \ ISAPI или 12Hive \ LAYOUTS, а затем вызвать его через соответствующий

http://[myserver]/_vti_bin/[Folder]/AutoComplete.asmx 

или

http://[myserver]/_layouts/[Folder]/AutoComplete.asmx 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...