Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.10.2007, 23:18
liho26 вне форума Посмотреть профиль Отправить личное сообщение для liho26 Найти все сообщения от liho26
  № 1  
Ответить с цитированием
liho26

Регистрация: Jun 2007
Сообщений: 7
Arrow загрузка данных из Webservice.NET во Flex

Уважаемые коллеги,
столкнулся с проблемой и прошу вашей помощи. Вкратце: есть Webservice.NET. В нем пара методов. Один возвпащает string, второй набор значений в ввиде ArrayList. Во Flex без проблем получаю string и null значение метода, который возвращает набор строк. Не могу понять, в чем проблема.

код метода сервиса
Код:
 [WebMethod]
        public System.Collections.ArrayList GetCategoryList()
        {
            System.Collections.ArrayList Listing = new System.Collections.ArrayList();
            //Создаем таблицу и записи в ней
            DataTable LF_CategoryTable = new DataTable("FilmCategoryList");
            using (SqlConnection ListConnection = new SqlConnection(ConnString))
            {
                SqlCommand cmd_GetList = new SqlCommand("SELECT CategoryList FROM LF_CategoryList ORDER BY CategoryList", ListConnection);

                SqlDataAdapter adapter = new SqlDataAdapter(cmd_GetList.CommandText, ListConnection);
                adapter.Fill(LF_CategoryTable);
                foreach (DataRow dr in LF_CategoryTable.Rows)
                {
                    foreach (DataColumn dc in LF_CategoryTable.Columns)
                    {
                        if (dc.ColumnName == "CategoryList")
                        {
                            Listing.Add(dr[dc]);
                        }
                    }
                }
                return Listing;
        } 
        }
Код обработки во Flex
Код:
    <mx:Script>
        <![CDATA[
   import mx.rpc.events.ResultEvent;
   import mx.rpc.events.FaultEvent;
   import mx.collections.ArrayCollection;

[Bindable]
            private var CatList: ArrayCollection;

private function ReadCategoryList(event:ResultEvent):void
			{
CatList = event.result  as ArrayCollection;
Alert.show(String(CatList), "Результат");
}
        ]]>
    </mx:Script>
<mx:WebService id="webserv"
	 wsdl="*******?wsdl"
	 load="webserv.GetCategoryList()">
	 	<mx:operation name="GetCategoryList" result="ReadCategoryList(event)"
	 	fault="defaultFault(event)" />
</mx:WebService>
мной сознательно опущены функции обработки ошибок и путь к самому сервису.

формат передаваемых сервисом данных

Код:
 <?xml version="1.0" encoding="utf-8" ?> 
- <ArrayOfAnyType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="ABCDEF">
  <anyType xsi:type="xsd:string">Тест</anyType> 
  <anyType xsi:type="xsd:string">Текст</anyType> 
  </ArrayOfAnyType>
данные надо передать в <mx:ComboBox />

отвечу на все, касающиеся темы вопросы
Благодарю за советы и за помощь.

с уважением...


Последний раз редактировалось Nirth; 24.10.2007 в 00:03.
Старый 24.10.2007, 00:13
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 2  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
1) На этом форуме, очень серьезно модераторы вроде меня очень болезнено относятся к новичкам, которые не читают правила. Код оформляется тэгами CODE(в квадратных скобках). Советую ознакомится с правилами форумов и разделов, если планируете оставаться тут более чем на 10 сообщений.

2) По моему event.result является Array а не ArrayCollection, будет ли работать так
Код:
CatList = new ArrayCollection(event.result as Array);
3)
Цитата:
Во Flex без проблем получаю string и null значение метода, который возвращает набор строк. Не могу понять, в чем проблема.
Извиняюсь, но я не понял предложения. Вы написали без проблем получаете значения, а потом ищете проблему?

P.S. в ActionScript методы, свойства, переменые называются с маленькой буквы (catList вместо CatList). ну это мелочи.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^


Последний раз редактировалось Nirth; 24.10.2007 в 00:38.
Старый 24.10.2007, 02:23
liho26 вне форума Посмотреть профиль Отправить личное сообщение для liho26 Найти все сообщения от liho26
  № 3  
Ответить с цитированием
liho26

Регистрация: Jun 2007
Сообщений: 7
Цитата:
Сообщение от Nirth
1) На этом форуме, очень серьезно модераторы вроде меня очень болезнено относятся к новичкам, которые не читают правила. Код оформляется тэгами CODE(в квадратных скобках).
Спасибо. Приму к сведенью.

Цитата:
Сообщение от Nirth
2) По моему event.result является Array а не ArrayCollection, будет ли работать так
Код:
CatList = new ArrayCollection(event.result as Array);
Парадокс азаключается в том, что после того, как я разместил вопрос на форуме, убил объявление переменной и заново ее объявил. Все заработало без проблем. До этого маялся 2 часа. Глюк Flex'a? Не знаю. Причину искать нет времени

С другой стороны, вопрос отображения остается открытым. Если передаю результирующий набор в виде DataSet или DataTable - Flex отказывается отображать данные. Если у кого есть пример - прошу поделиться.

Цитата:
Сообщение от Nirth
3)

Извиняюсь, но я не понял предложения. Вы написали без проблем получаете значения, а потом ищете проблему?
Без проблем я получаю строковую переменную. Т. е. данные, состоящие из одной строки. Например, "Привет, мир". С массивом из строк возникла неприятная ситуация. Читайте выше

Цитата:
Сообщение от Nirth
P.S. в ActionScript методы, свойства, переменые называются с маленькой буквы (catList вместо CatList). ну это мелочи.
Да, мелочи. Как хочу, так и называю. На производительности продукта это не сказывается.

с уважением...

Старый 24.10.2007, 03:09
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 4  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
в обработчике события напиши
Код:
describeType(event.result);
Что там за тип данных?(можешь выложить сюда результат я гляну).

Код:
<?xml version="1.0" encoding="utf-8" ?> 
- <ArrayOfAnyType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="ABCDEF">
  <anyType xsi:type="xsd:string">Тест</anyType> 
  <anyType xsi:type="xsd:string">Текст</anyType> 
  </ArrayOfAnyType>
Эээ только сейчас заметил, что без SOAP конверта что-ли? или вы удалили для читабильности?
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 24.10.2007, 10:58
liho26 вне форума Посмотреть профиль Отправить личное сообщение для liho26 Найти все сообщения от liho26
  № 5  
Ответить с цитированием
liho26

Регистрация: Jun 2007
Сообщений: 7
Цитата:
Сообщение от Nirth
в обработчике события напиши
Код:
describeType(event.result);
Ок, попробую

Цитата:
Сообщение от Nirth
Код:
<?xml version="1.0" encoding="utf-8" ?> 
- <ArrayOfAnyType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="ABCDEF">
  <anyType xsi:type="xsd:string">Тест</anyType> 
  <anyType xsi:type="xsd:string">Текст</anyType> 
  </ArrayOfAnyType>
Эээ только сейчас заметил, что без SOAP конверта что-ли? или вы удалили для читабильности?
Нет, ничего не удалял. Этот то, что отдает вэбметод. Результирующим набором является ArrayList. Больше ничего в передаваемом xml и не было. Выложил "как есть".

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:57.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:57.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.