Hubert Jastrzębski

Hubert Jastrzębski Student, Szkoła
Główna Gospodarstwa
Wiejskiego w
Warszawie

Temat: Konstrukcja strony z produktami

Witam, z góry mówię że jestem amatorem i nie jest mi łatwo opisać problem. Nie wiem jak to zrobić aby kliknięcie produktu spowodowało przejście w jego szczegóły. Potrzebuję jakiejś wskazówki, wzoru lub linku do przykładu.

Dane o kategoriach i produktach są pobierane z xml-a.
Produkty są przyporządkowane do kategorii.Hubert Jastrzębski edytował(a) ten post dnia 18.10.10 o godzinie 15:45
Jacek Gmaj

Jacek Gmaj project manager, CHG
Teresa Gmaj

Temat: Konstrukcja strony z produktami

Cześć
właściwość data Ci pomoże
Hubert Jastrzębski

Hubert Jastrzębski Student, Szkoła
Główna Gospodarstwa
Wiejskiego w
Warszawie

Temat: Konstrukcja strony z produktami

Może ktoś tu rzuci jakąś rade.

Zrobiłem listę objektów za pomocą REPEATER który znajduje się w TILE i pytanie czy mogę otworzyć wybrany objekt tak aby nie pojawiały się inne, w jakiś sposób wyłączyć TILE?

pzdrHubert Jastrzębski edytował(a) ten post dnia 18.10.10 o godzinie 21:03

konto usunięte

Temat: Konstrukcja strony z produktami

Hubert Jastrzębski:
Może ktoś tu rzuci jakąś rade.

Zrobiłem listę objektów za pomocą REPEATER który znajduje się w TILE i pytanie czy mogę otworzyć wybrany objekt tak aby nie pojawiały się inne, w jakiś sposób wyłączyć TILE?

pzdrHubert Jastrzębski edytował(a) ten post dnia 18.10.10 o godzinie 21:03

co chcesz uzyskać bo nie rozumiem??
Hubert Jastrzębski

Hubert Jastrzębski Student, Szkoła
Główna Gospodarstwa
Wiejskiego w
Warszawie

Temat: Konstrukcja strony z produktami

Faktycznie źle opisałem problem, więc od początku. Mam produkty, które są wyświetlane jako lista i powtarzane dzięki repeater.

<mx:Script>
<![CDATA[
import events.ProductEvent;
import mx.collections.ArrayCollection;
[Bindable]
public var prodByCategory:ArrayCollection;
]]>
</mx:Script>

<mx:Tile>
<mx:Repeater id="foodRepeater" width="100%" height="100%"
dataProvider="{prodByCategory}">
<v:GroceryDetail id="prod" width="80%"
groceryItem="{foodRepeater.currentItem}"/>
</mx:Repeater>
</mx:Tile>

Chcę aby kliknięcie produktu z listy spowodowało przejście na stronę ze szczegółami tego produktu.
W SzczegolyProd robiłem nowy stan widoku i tworzyłem str. ze szczegółami po kliknięciu pojawiało się co trzeba ale pozostały niechciane obiekty -proukty.
Będę bardzo wdzięczny za pomocHubert Jastrzębski edytował(a) ten post dnia 20.10.10 o godzinie 13:38

konto usunięte

Temat: Konstrukcja strony z produktami

Jaki masz dataProvider w <mx:Repeater> ?

[edit]
najlepiej wklej kodSylwester Gąsiewski edytował(a) ten post dnia 20.10.10 o godzinie 06:20
Hubert Jastrzębski

Hubert Jastrzębski Student, Szkoła
Główna Gospodarstwa
Wiejskiego w
Warszawie

Temat: Konstrukcja strony z produktami

<?xml version="1.0" encoding="utf-8"?>
<mx:UIComponent xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="prodByCatRPC.send()">
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import valueObjects.Product;
import valueObjects.Category;

private var categorizedProducts:Object = new Object();
private var aCats:Array = new Array();
private var rawData:XML;

public function getProdsForCat(catID:int):Array{
return categorizedProducts[catID];
}

public function getCats():Array{
return aCats;
}

public function getCategorizedProducts():XML{
return rawData;
}
private function prodByCategoryHandler(event:ResultEvent):void{
rawData=event.result as XML;

for each(var c:XML in event.result..category){
var category:Category = new Category(int(c.@catID),String(c.@catName));
aCats.push(category);
categorizedProducts[c.@catID] = new Array();
for each (var p:XML in c..product){
var prod:Product = new Product(Number(p.@catID),
String(p.@prodName),
Number(p.@unitID),
Number(p.@cost),
Number(p.@listPrice),
String(p.@description),
Boolean(p.@isOrganic=="Yes"),
Boolean(p.@isLowFat=="Yes"),
String(p.@imageName));
categorizedProducts[c.@catID].push(prod);
}
}
if(this.parentDocument.categorizedProductDataLoaded != null){
this.parentDocument.categorizedProductDataLoaded(aCats);
}
}
]]>
</mx:Script>

<mx:HTTPService id="prodByCatRPC"
url="...categorizedProducts.xml"
result="prodByCategoryHandler(event)"
resultFormat="e4x"/>

</mx:UIComponent>Hubert Jastrzębski edytował(a) ten post dnia 20.10.10 o godzinie 13:36

konto usunięte

Temat: Konstrukcja strony z produktami

pokaż .xml który wczytujesz ( categorizedProducts.xml )
Hubert Jastrzębski

Hubert Jastrzębski Student, Szkoła
Główna Gospodarstwa
Wiejskiego w
Warszawie

Temat: Konstrukcja strony z produktami

Sylwester Gąsiewski:
pokaż .xml który wczytujesz ( categorizedProducts.xml )

http://www.flexgrocer.com/categorizedProducts.xml

konto usunięte

Temat: Konstrukcja strony z produktami

Hubert Jastrzębski:
..Chcę aby kliknięcie produktu z listy spowodowało przejście na stronę ze szczegółami tego produktu...

chodzi Ci o stronę www?
Hubert Jastrzębski

Hubert Jastrzębski Student, Szkoła
Główna Gospodarstwa
Wiejskiego w
Warszawie

Temat: Konstrukcja strony z produktami

Sylwester Gąsiewski:
Hubert Jastrzębski:
..Chcę aby kliknięcie produktu z listy spowodowało przejście na stronę ze szczegółami tego produktu...

chodzi Ci o stronę www?

takHubert Jastrzębski edytował(a) ten post dnia 21.10.10 o godzinie 20:59
Hubert Jastrzębski

Hubert Jastrzębski Student, Szkoła
Główna Gospodarstwa
Wiejskiego w
Warszawie

Temat: Konstrukcja strony z produktami

Sylwester Gąsiewski:
Hubert Jastrzębski:
..Chcę aby kliknięcie produktu z listy spowodowało przejście na stronę ze szczegółami tego produktu...

chodzi Ci o stronę www?

podać jeszcze jakieś informacje?
Jakub Małecki

Jakub Małecki Programista
Java/Flex, Baroo
Software Ltd

Temat: Konstrukcja strony z produktami

Spójrz na klasę URLRequest:

http://help.adobe.com/en_US/FlashPlatform/reference/ac...

Dzięki niej oraz metodzie navigateToUrl możesz otworzyć stronę WWW z poziomu aplikacji flexowej. Przykładowy kod metody:

public function openSite() {
var url:String = "http://www.[yourDomain].com/application.jsp";
var request:URLRequest = new URLRequest(url);
var variables:URLVariables = new URLVariables();
variables.exampleSessionId = new Date().getTime();
variables.exampleUserLabel = "guest";
request.data = variables;
navigateToURL(request);
}

Jak widzisz za pomocą zmiennej variables możesz przekazać jakieś parametry do requesta. Podepnij tą metodę do listy produktów, do click handlera i będziesz miał zakładaną funkcjonalność.
Hubert Jastrzębski

Hubert Jastrzębski Student, Szkoła
Główna Gospodarstwa
Wiejskiego w
Warszawie

Temat: Konstrukcja strony z produktami

Jakub Małecki:
Spójrz na klasę URLRequest:

http://help.adobe.com/en_US/FlashPlatform/reference/ac...

Dzięki niej oraz metodzie navigateToUrl możesz otworzyć stronę WWW z poziomu aplikacji flexowej. Przykładowy kod metody:

public function openSite() {
var url:String = "http://www.[yourDomain].com/application.jsp";
var request:URLRequest = new URLRequest(url);
var variables:URLVariables = new URLVariables();
variables.exampleSessionId = new Date().getTime();
variables.exampleUserLabel = "guest";
request.data = variables;
navigateToURL(request);
}

Jak widzisz za pomocą zmiennej variables możesz przekazać jakieś parametry do requesta. Podepnij tą metodę do listy produktów, do click handlera i będziesz miał zakładaną funkcjonalność.

Zależało mi na tym aby działało to w nowym stanie widoku. Próbowałem to zrobić w GroceryDetail i działało ale nie wiem jak wyeliminować pozostałe elementy z listy.
Jakub Małecki

Jakub Małecki Programista
Java/Flex, Baroo
Software Ltd

Temat: Konstrukcja strony z produktami

Upewniam się co chcesz zrobić:
1. Masz listę produktów.
2. Po kliknięciu na jeden z nich ma się pojawić strona z informacjami o produkcie, a lista ma zniknąć.

Jeśli tak, to wg mnie zastosowanie repeatera nie jest dobrym rozwiązaniem. Zrobiłbym to mniej więcej tak:
1. Viewstack jako parent.
2. Wewnątrz niego 2 dzieci: lista oraz detale produktu.
3. Po kliknięciu na item na liście zmieniasz indeks w viewstacku żeby pokazywał detale oraz podbindowujesz dane produktu do formularza detali produktu.

Ewentualnie można to jeszcze zrobić z wykorzystaniem stanów. Jeśli upierasz się przy repeaterze, to najprostszy sposób na jego ukrycie to wyczyszczenie jego dataProvidera. Pamiętam że ukrywanie go za pomocą stanów w którejś wersji flexa nie działało, nie wiem czy to poprawili.

Jeśli chcesz kompletny kod czegoś w tym stylu spójrz tutaj:

http://mate.asfusion.com/page/examples/cafe-townsend

Jest to przykładowa aplikacja napisana z wykorzystaniem frameworka Mate.
Hubert Jastrzębski

Hubert Jastrzębski Student, Szkoła
Główna Gospodarstwa
Wiejskiego w
Warszawie

Temat: Konstrukcja strony z produktami

Jakub Małecki:
Upewniam się co chcesz zrobić:
1. Masz listę produktów.
2. Po kliknięciu na jeden z nich ma się pojawić strona z informacjami o produkcie, a lista ma zniknąć.

Jeśli tak, to wg mnie zastosowanie repeatera nie jest dobrym rozwiązaniem. Zrobiłbym to mniej więcej tak:
1. Viewstack jako parent.
2. Wewnątrz niego 2 dzieci: lista oraz detale produktu.
3. Po kliknięciu na item na liście zmieniasz indeks w viewstacku żeby pokazywał detale oraz podbindowujesz dane produktu do formularza detali produktu.

Ewentualnie można to jeszcze zrobić z wykorzystaniem stanów. Jeśli upierasz się przy repeaterze, to najprostszy sposób na jego ukrycie to wyczyszczenie jego dataProvidera. Pamiętam że ukrywanie go za pomocą stanów w którejś wersji flexa nie działało, nie wiem czy to poprawili.

Jeśli chcesz kompletny kod czegoś w tym stylu spójrz tutaj:

http://mate.asfusion.com/page/examples/cafe-townsend

Jest to przykładowa aplikacja napisana z wykorzystaniem frameworka Mate.

Zgadza się, dałeś mi wiele wskazówek, jeszcze nie wszystko jest dla mnie jasne ale spróbuje zastosować pierwszą metode. Dzięki i pozdrawiam!

Następna dyskusja:

Parametry w URL przy otwier...




Wyślij zaproszenie do