Ich habe mein Kendo-UI-Gitter eingerichtet, um Daten von einer MVC-Aktion zu lesen, die JSON zurückgibt. Ich benutze die kostenlose Version von Kendo und nicht die MVC-spezifisch, wegen der Kosten.
Das Problem ist, dass wenn die Seite geladen wird und die anfängliche Grundgesamtheit des Rasters das Lade-Spinner nicht anzeigt. Nachdem das Raster ausgefüllt wurde und ich auf eine andere Seite gehe oder eine Spalte sortiere, wird es angezeigt.
Wenn ich den height-Parameter des Gitters anwähle, erhalte ich den ersten Spinner, aber das Gitter zeigt nur eine Zeile (sollte 20 ergeben haben).
Weiß jemand, warum Sie den Höhenparameter einstellen müssen? Oder irgendeine Art, den Spinner zur Arbeit zu bringen, ohne die Höhe einzustellen.
Mein Kendo JavaScript Code:
%Vor%Ich hatte das gleiche Problem. Es wird tatsächlich die Spinner- / Fortschrittsleiste gerendert, aber da der Gitterinhaltsbereich anfänglich keine Höhe hat, können Sie ihn nicht sehen. Das hat für mich funktioniert. Probieren Sie es aus:
%Vor%Es besteht die Möglichkeit, dass das Raster so schnell geladen wird, dass Sie keinen Load-Spinner sehen, da Sie die Datenquelle in der Initialisierung des Rasters erstellen und festlegen. Wenn Sie sich alle Web-Demos für Kendogrid auf ihrer Website ansehen, sehen Sie selten den ersten Spinner. Auf großen Remote-Datenquellen, die länger zum Laden benötigen, würden Sie es sehen.
If I set the height parameter of the grid, I get the initial spinner but the grid only shows one row (should have shown 20)
Es ist nicht so, dass es nur eine Zeile anzeigt. Es liegt daran, dass es Ihren height
-Eigenschaftswert nicht lesen konnte und daher so klein wie möglich ist. Höhe nimmt einen numerischen Pixelwert auf und akzeptiert keine Prozentsätze. Es konnte Ihren Wert nicht lesen, daher dauerte es wahrscheinlich länger, das Raster zu initialisieren, sodass Sie den Last-Spinner sehen konnten. Stattdessen sollte die Höhe beispielsweise wie height: 400,
eingestellt werden. Aber das ist neben dem Punkt.
Wenn Sie wirklich möchten, dass der Benutzer beim Start einen Load-Spinner sieht, versuchen Sie, die Datenquelle außerhalb der Rasterinitialisierung zu laden. Laden Sie das Raster zuerst und laden Sie anschließend die Datenquelle, sodass zwischen Rasterrendering und Datenquelleneinstellung etwas mehr Verzögerung liegt.
%Vor%Und dann legen Sie die Datenquelle wie folgt fest:
%Vor%Aber ich denke, das würde immer noch ziemlich schnell laden.
Ein weiterer letzter Ausweg, wenn Sie wirklich wollen, dass der Spinner den Benutzer dazu bringt zu glauben, dass das Laden länger dauert, und den Lade-Spinner manuell aufzurufen, wie Sie es versucht haben. Rufen Sie kendo.ui.progress($("#loading"), true);
auf, führen Sie eine kleine Verzögerungsfunktion für zB 250ms aus und schalten Sie dann den Load Spinner aus, und rufen Sie dann grid.setDataSource(ds);
und refresh auf.
Tags und Links asp.net-mvc javascript jquery kendo-ui kendo-grid