J'utilise w2ui pour afficher une table d'un modèle django. Au lieu de charger tous les éléments en même temps, j'utilise autoLoading pour charger 100 éléments à la fois. Voici le code de la table:La table ne se charge pas automatiquement lors du défilement
var config = {
grid: {
name: "grid",
url: "retrieveData/",
show: {
footer:true,
toolbar:true
},
header: "List of RTNs",
columns: [
{ field:"number", caption:"Number", size:"30%" },
{ field:"name", caption:"Name", size:"30%" },
{ field:"release", caption:"Release", size:"30%" }
]
}
}
$(function() {
$("#grid").w2grid(config.grid);
});
Le code qui gère la demande JSON se fait via une vue django, voici le code correspondant:
@csrf_exempt
def retrieveData(request):
cmd = request.POST.get("cmd", False)
if cmd == "get-records":
offset = int(request.POST.get("offset", False))
limit = int(request.POST.get("limit", False))
entries = Data.objects.all()[offset:limit+offset]
json_list = {"status":"success"}
records = []
def notNone(x):
if x != None and x != "":
return x.strftime("%Y-%m-%dT%H:%M:%S")
else:
return ""
for entry in entries:
records.append({
"recid":entry.id,
"number":entry.number,
"name":entry.name,
"release":entry.release,})
total = len(records)
json_list["total"] = total
json_list["records"] = records
return HttpResponse(json.dumps(json_list), content_type="application/json")
else:
json_list = {"status":"error"}
json_list["message"] = "CMD: {0} is not recognized".format(cmd)
json_list["postData"] = request.GET
return HttpResponse(json_dumps(json_list), content_type="application/json")
Le tableau est en mesure de récupérer les 100 premiers éléments, mais quand je défile tout en bas, la table ne charge pas plus d'éléments. Au lieu de charger plus d'éléments, il ne fait rien. J'ai désactivé autoLoad, mais cela n'a rien fait (le bouton "Load More" n'apparaissait pas). Il y a mille éléments dans ma table.
Aucune erreur n'est signalée, et tout semble fonctionner, sauf qu'il ne charge pas plus d'éléments lorsque je défile.
Je suivais l'exemple ci-dessous à partir du site w2ui: http://w2ui.com/web/demos/#!combo/combo-9