PDA

Volledige versie bekijken : problemen met paging


arjanpetersen
%Europe/Berlin %846 %2007, 20:18
Ik heb jullie hulp nodig bij het onderstaande probleem. Om de één of andere manier verloopt paginering niet helemaal lekker. De XML en alles wordt wel ingeladen, echter de vorige en volgende button werken niet helemaal goed. Ik weet helaas niet precies wat er allemaal met de variable paginaNummer gebeurd. Misschien dat iemand een uitkomst weet, of weet wat ik over het hoofd zie.

Alvast bedankt voor de geboden hulp!


<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300" creationComplete="AllReactions.send()">
<mx:Script>
<![CDATA[
import mx.events.*;
import mx.collections.*;
import MyComp.SendForm;
import flash.events.*;
import mx.controls.Alert;
import mx.managers.PopUpManager;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;



public var loggedin:Boolean = false;
[Bindable]
public var pop:SendForm;
[Bindable]
public var messages:XMLList;
[Bindable]
public var XMLCol:XMLListCollection;
[Bindable]
public var reactions:XMLListCollection;
[Bindable]
public var paginaNummer:int = 1;




private function resultHandler(event:ResultEvent) :void {
messages = event.result.bericht as XMLList;
XMLCol = new XMLListCollection(messages);
CreateContent(XMLCol,1);



}

public function handleFault(event:FaultEvent):void
{
Alert.show(event.fault.faultString, "Error");
}

public function CreateContent(XMLCol:XMLListCollection, paginaNummer:int):void{

reactions = new XMLListCollection;
var aantalItems:int = XMLCol.length;
var aantalPerPagina:int = 10;
var startNummer:int = (paginaNummer - 1) * aantalPerPagina;
var eindNummer:int = startNummer + aantalPerPagina;
var aantalPaginas:int = Math.ceil(aantalItems / aantalPerPagina);
if (eindNummer > aantalItems) eindNummer = XMLCol.length;

for (var i:int=0; i < eindNummer ; i++) {
var tempXML:Object;
tempXML = XMLCol.getItemAt(i);
reactions.addItem(tempXML);
}



if (paginaNummer > 1) {
vorige.visible = true;
} else {

vorige.visible = false;
}

if (paginaNummer < aantalPaginas) {
volgende.visible = true;
}
else {
volgende.visible = false;
}


}



public function showReactie():void
{
pop = SendForm(PopUpManager.createPopUp(this,SendForm,tr ue));
pop.title = "Please enter your login information.";
pop.showCloseButton =true;
PopUpManager.centerPopUp(pop);

pop.addEventListener("close",removeMe);
pop["Ok"].addEventListener("click",processReactie);
}
public function removeMe(event:Event):void {
PopUpManager.removePopUp(pop);
}
private function processReactie(event:Event):void
{
Alert.show("Reactie toegevoegd!");
removeMe(event);
AllReactions.send();
}

]]>
</mx:Script>

<mx:HTTPService id="AllReactions" url="http://localhost/test-debug/PHP/request.php" useProxy="false"
method="POST" resultFormat="e4x" result="resultHandler(event)" fault="handleFault(event)"/>

<mx:Text text="{paginaNummer}"/>

<mx:Panel autoLayout="true">
<mx:Repeater id="rep" dataProvider="{reactions}">
<mx:Label id="alles" text="{rep.currentItem.naam} zegt: {rep.currentItem.inhoud}"/>
</mx:Repeater>
<mx:Button id="vorige" label="vorige" click="CreateContent(XMLCol,paginaNummer - 1);"/>
<mx:Button id="volgende" label="volgende" click="CreateContent(XMLCol,paginaNummer + 1);"/>
</mx:Panel>


<mx:Button id="reactie" label="reactie" click="showReactie();"/>


</mx:VBox>

Mr. Black
%Europe/Berlin %903 %2007, 21:41
Aantal dingetjes die me opvallen:
- Je hebt een variabele paginaNummer én een parameter paginaNummer: dat gaat nooit goed.
- Nu doe je dit:

click="CreateContent(XMLCol, paginaNummer - 1)"

Je geeft nu het paginaNummer min één mee als parameter; maar ik zie nergens in je code dat je ook daadwerkelijk paginaNummer aanpast. Je kan dus beter dit doen:

click="CreateContent(XMLCol, --paginaNummer )"

Hierbij wordt er eerst paginaNummer met één verkleind, en dan wordt hij doorgespeeld naar de functie. ( ++paginaNummer bij de volgendeButton )

Probeer dat eens, en gebruik trace(), als je "niet weet wat er met de variabele paginaNummer gebeurt" ( zie evt. hier (http://www.flashfocus.nl/forum/showthread.php?t=38364) ).

Succes! :)

arjanpetersen
%Europe/Berlin %428 %2007, 10:16
Heel erg bedankt voor je snelle reactie!! Ik had het ondertussen zelf ook opgelost door een extra variable in te voeren die de huidige pagina bijhoudt.