PDA

View Full Version : Paging Toolbar



DetBerlin
21 Nov 2012, 4:53 AM
so ich versuche es jetzt einfach auf deutsch....

kann mir jemand erklären wie das mit dem paging tollbar funktioniert?

die zeigt mir an das 4 seiten existieren aber blättern? denkste
ausserdem werden mir alle einträge angezeigt obwohl ich das pagesize auf 2 eingestellt habe... lol


was fürn quark ist das...

so langsam werde ich richtig sauer....

gruß
DetBerlin

PLEASE GERMAN ANSWER

and please corrects examples

Farish
21 Nov 2012, 5:07 AM
ich kann nicht viel Deutsch aber ich versuche trotzdem. Wenn Sie Paging benutzen, und die Store schickt ein request an den Backend, es gibt parameters wie start und limit. z.B. wenn Sie ein pagingSize von 2 benutzen, für erste Seite wird start=0, limit=2, für 2. Seite start=2, limit=4 usw. Der Backend muss diese Parametern lesen und nur die erste 2 bzw. die 3. und 4. records zurückschicken.

Außerdem, müssen Sie die totalProperty für store proxy konfigurieren und in Response auch der Anzahl der Records zurückschicken z.B.:


store.setProxy({
type: 'ajax',
api: {

},
reader: { type: 'json' , root: 'data', totalProperty: 'total' },
writer: { type: 'json'}
});


{total: 40, data: [{id: 1, name: "one"},{id: 2, name: "two"}]}

DetBerlin
21 Nov 2012, 6:53 AM
danke für die schnelle antwort

aber so wie du es vorschlägst kann ich es nicht schreiben....

siehe mein Code....

hier der code wie ich die daten aus der datenbank hole



$bokEintrageString = "SELECT * FROM tbgaeste ORDER BY gasidx01 DESC LIMIT " . $_GET["bokStart"] . ", 8"; $bokEintrageResult = mysql_query($bokEintrageString)
or die ("SQLFehler in Abfragedefinitionen 1000: ");
$bokGesamtEintrage = mysql_query("SELECT COUNT(*) AS bokGesamtAnzahl FROM tbgaeste");
$bokCount = mysql_result($bokGesamtEintrage, 0, "bokGesamtAnzahl");
while ($bokRow = mysql_fetch_array($bokEintrageResult, MYSQL_ASSOC)) {$tbRow[] = array(
'gascnt01' => $bokCount[0],
'gastxt01' => $bokRow['gastxt01'],
'gastxt02' => nl2br($bokRow['gastxt02']),
'gastxt03' => $bokRow['gastxt03'],
'gasbld01' => $bokRow['gasbld01'],
'gasbld02' => $bokRow['gasbld02']);}
if (isset($tbRow) == 1)
{
echo json_encode($tbRow);
}
else
{
echo 0;
};



und jetzt wie ich die daten in die Grid übergebe





Ext.onReady(function() {
var gasRatingPos =
'<img style="position:absolute; margin-top:1px;" src="';
var gasSmilysPos =
'<img style="position:absolute; margin-top:-2px;" src="';
var gasDetailText =
'<div style="background:#ffffff; padding:8px 8px 8px 6px;' +
'font-family:Verdana; font-size:12px; word-break: break-all; word-wrap:break-word;">';
var gasDetailLeer =
'<div style="position:relative: top:0px; height:10px;' +
'background-color:#e1e1e6; border-top:1px #90b5e5 solid;"></div>';
var gasCellsStyle = '<span style="color:#cc5404;">';
gasPage = 2;
bookBilder = new Array();
for (var i = 10; i <= 35; i++) {
var bookImages = new Image();
bookImages.src = 'bilder/smiles' + i + '.gif';
bookBilder[i] = bookImages;
}
var gasStore = Ext.create('Ext.data.Store',
{
autoLoad:false,
fields:[
'gascnt01',
'gastxt01',
'gastxt02',
'gastxt03',
'gasbld01',
'gasbld02'
],
pageSize:gasPage,
proxy:{
type:'ajax',
url:'phregist.php?regWahlen=8&bokStart=0'
}
});

gasStore.load({params:{bokStart:0}});
var gasWindow = myWindowsCreate(1, 'mitte', 'G&auml;stebuch', 743, 666, 4, '');
gasWindow.show();

Ext.create('Ext.grid.Panel',{
cls:'wbGrids1',
width:739,
height:634,
rowLines:false,
bodyStyle:'background:#e1e1e6;',
hideHeaders:true,
border:false,
store:gasStore,
renderTo:'windowId',
disableSelection:true,
viewConfig:{trackOver:false},
columns:[
{
width: 20,
dataIndex:'gasbld02',
renderer: function(value)
{return Ext.String.format(gasSmilysPos + bookBilder[value].src + '">');},
align:'left'
},{
width:301,
dataIndex:'gastxt01',
renderer: function(value)
{return Ext.String.format('<div>Von: ' + gasCellsStyle + value + '</span></div>');}
},{
width:100,
dataIndex:'gasbld01',
renderer: function(value)
{return Ext.String.format(gasRatingPos + bookBilder[value].src + '"/>');},
align:'center'
},{
width:301,
dataIndex:'gastxt03',
renderer: function(value)
{return Ext.String.format('<div>Datum: ' + gasCellsStyle + value + '</span></div>');},
align:'right'
}
],
features:[
{
ftype:'rowbody',
getAdditionalData:function(data, rowIndex, record, orig)
{
var gasDetailHeaderCt = this.view.headerCt,
gasColspan = gasDetailHeaderCt.getColumnCount();
return {rowBody:gasDetailText + record.get("gastxt02") + '</div>' + gasDetailLeer, rowBodyColspan:gasColspan};}
}
],
// bbar:Ext.create('Ext.PagingToolbar',{
// store:gasStore,
// displayInfo:true,
// displayMsg:'Eintr&auml;ge {0} - {1} von {2}',
// emptyMsg:"keine Eintr&auml;ge im G&auml;stebuch vorhanden"
// }),

dockedItems:[
{
xtype:'pagingtoolbar',
store:gasStore,
dock:'bottom',
displayInfo:true
}
],
defaults:{
flex:1,
overflowY:'scroll'
}});
Ext.get('closedId').on('click', function(){gasWindow.destroy();});
})

Farish
21 Nov 2012, 7:08 AM
Hast du in bokEintrageResult alle Einträge? meines Erachtens, der beste Weg ist das du deine SELECT statement so änderst dass du nur die Einträge für die aktuelle Seite von der Datenbank ausholst (in deinem Fall 2 Einträge pro Seite)

DetBerlin
21 Nov 2012, 7:29 AM
Danke für deine hilfe.....

du hast mich auf den richtigen weg gebracht.

habe das problem jetzt lösen können....


vielen vielen dank

Farish
21 Nov 2012, 7:30 AM
gerne