Wenn ich nur eine kleine Menge pro Seite anzeige, geht es schnell und sehr gut. Wenn ich es auf 100 oder mehr erhöhe, wird es langsam. Bei 1000 ist es unerträglich! Dies ist der Code, der für das Zeichnen des Rasters verwendet wird:
$("#stSearchTermsGrid").jqGrid({
mtype: "POST",
postData:{},
datatype: function(postdata) {
$.ajax({
url: 'ajax/ajax_termsSearchGridSimple.php',
data: postdata,
async: false,
dataType: "xml",
error: function(){
alert('Fehler beim Laden des XML-Dokuments');
},
success: function(data,stat,xmldata){
//Fehler überprüfen
var $error=$(data).find('error').text();
if($error!="0")
{
messageBox("Fehler",$error);
return;
}
//Inhalt
var $content=$(data).find('content').text();
if($content!="0")
{
var thegrid = $("#stSearchTermsGrid")[0];
thegrid.addXmlData(xmldata.responseXML);
}
}
});
},
colNames:["tId","term", "revTerm", "uType","freq","description","fId","facet","modifiedTime"],
colModel:[
//tId
{name:'tId',index:'tId',align:"center",searchoptions:{sopt:['eq','ne','lt','le','gt','ge','in','ni']}},
//Begriff (Änderbar)
{name:'term',index:'term',searchoptions:{sopt:['eq','ne','in','ni','bw','bn','ew','en','cn','nc']},editable:true,edittype:'text',editoptions:{size:20},editrules:{required:true},formoptions:{elmsuffix:'(*)'}},
//rückläufiger Begriff (Änderbar)
{name:'revTerm',index:'revTerm',searchoptions:{sopt:['eq','ne','in','ni','bw','bn','ew','en','cn','nc']},editable:true,edittype:'text',editoptions:{size:20},editrules:{required:true},formoptions:{elmsuffix:'(*)'}},
//uType (Änderbar)
{name:'uType',index:'uType',align:"center",searchoptions:{sopt:['eq','ne','in','ni']},editable:true,edittype:'select',editoptions:{value:{'':'beliebig','NPU':'Eigenname','NU':'Substantiv','VU':'Verb'}}},
//Häufigkeit
{name:'freq',index:'freq',align:"center",searchoptions:{sopt:['eq','ne','lt','le','gt','ge','in','ni']}},
//Beschreibung (Änderbar)
{name:'description',index:'description',searchoptions:{sopt:['bw','bn','ew','en','cn','nc']},editable:true,edittype:'textarea',editoptions:{rows:"3"}},
//fId
{name:'fId',index:'fId',align:"center",searchoptions:{sopt:['eq','ne','lt','le','gt','ge','in','ni']}},
//facet
{name:'facet',index:'facet',searchoptions:{sopt:['eq','ne','in','ni','bw','bn','ew','en','cn','nc']}},
//Geänderte Zeit
{name:'modifiedTime',index:'modifiedTime',align:"center",searchoptions:{sopt:['eq','ne','lt','le','gt','ge','bw','bn','ew','en','cn','nc']}}
],
gridComplete: function(){
var $ids=$("#stSearchTermsGrid").jqGrid('getDataIDs');
for($i=0;$i<$ids.length;$i++){
var $reference="G";
//Spalten aktualisieren
$("#stSearchTermsGrid").jqGrid('setRowData',$ids[$i],{"reference":$reference});
//Färbung der kürzlich klassifizierten Zeile
var $colorRecentlyModified = '#DFFC91';
var modifiedTime = $("#stSearchTermsGrid").jqGrid('getCell',$ids[$i],'modifiedTime');
var timeDiff = Math.abs(new Date() - new Date(modifiedTime.replace(/-/g,'/')));
// 86400000 ist die Anzahl der Millisekunden in einem Tag. Multiplikation mit Tagen, um diejenigen zu markieren, die vor einigen Tagen geändert wurden
timeLimit = 86400000 * 1.5;
if(timeDiff < timeLimit)
{
for(colN=2; colN<9; colN++)
$("#stSearchTermsGrid").jqGrid('setCell', $ids[$i], colN, '', {'backgroundColor':$colorRecentlyModified});
}
//Färbung der unklassifizierten Zeile
var $colorUnclassified = '#FFCECE';
var $fId = $("#stSearchTermsGrid").jqGrid('getCell',$ids[$i],'fId');
if($fId == "0")
{
for(colN=2; colN<9; colN++)
$("#stSearchTermsGrid").jqGrid('setCell', $ids[$i], colN, '', {'backgroundColor':$colorUnclassified});
}
}
},
sortable: true,
//autowidth:true,
width: 900, //Breite des Rasters
height: 250, //Höhe des Rasters
sortname: 'term', //Standard-Sortierspalte
caption: "Begriffe", //Bezeichnung für das Raster (leer versteckt)
hidegrid: false,
gridview: true, //Gitter schneller laden
multiselect: true, //Mehrere Auswahl unterstützen
//multiboxonly: true,
pager: '#stSearchTermsGridPager',
rowNum:10,
rowList:[10,25,50,100,500,1000],
viewrecords: true, //Anzeige von Aufzeichnungsinformationen
viewsortcols: [true,'vertical',true], //Sortierbare Spalte mit Symbolen anzeigen
editurl: 'ajax/ajax_termsEdit.php'
});
$("#stSearchTermsGrid").jqGrid('navGrid','#stSearchTermsGridPager',
{edit:true,add:false,del:true,search:true,view:true,refresh:true},
// Bearbeitungsoptionen
{
onclickSubmit : function(params, posdata) {
var $tId=$("#stSearchTermsGrid").jqGrid('getGridParam','selrow');
if($tId && $tId.length>0)
{
var $rowAry=$("#stSearchTermsGrid").jqGrid('getRowData',$tId);
var $fId=$rowAry["fId"];
return {"fId":$fId}
}
},
afterSubmit : gridAfterSubmit,
reloadAfterSubmit: true,
closeOnEscape:true,
bottominfo:"Felder, die mit (*) markiert sind, sind erforderlich."
},
// Hinzufügen von Optionen
{},
//löschen Optionen
{
msg: "Ausgewählte Datensätze werden dauerhaft gelöscht und können nicht wiederhergestellt werden. Sind Sie sicher?",
afterSubmit : gridAfterSubmit,
reloadAfterSubmit: true,
closeOnEscape:true
},
// such Optionen
{multipleSearch:true,closeOnEscape:true},
//Ansichtsoptionen
{
closeOnEscape:true
}
);
$("#stSearchTermsGrid").jqGrid('gridResize',{minWidth:900,maxWidth:2000,minHeight:250, maxHeight:1000});