2013-02-19 15 views
8

Mam tabstrip z dwiema zakładkami. Na każdej karcie mam jedną siatkę z przywoływaniem. Moja konfiguracja siatki znajduje się po stronie klienta. Kiedy szybki przełącznik beetween karcie następnie uzyskać wyjątek od javascript:Siatka Kendo UI - błąd rzutowania (kendo.format ("Nie można wywołać metody '{0}' z {1} przed zainicjalizacją", t, r))

"throw Error(kendo.format("Cannot call method '{0}' of {1} before it is initialized",t,r))" 

poniższa sekcja konfiguracji stronicowania w sieci:

[...] 

pageable: { 
        pageSizes: [5, 10, 20], 
        input: true 
      }, 
[...] 

Jeżeli masz jakiś pomysł, jak uniknąć tego błędu?

+1

Nie bardzo wiadomo, co jest problem. Więcej kodu lub demo jsbin/jsfiddle pomoże nam lepiej zrozumieć twoją sprawę. –

+0

Wygląda na to, że inicjalizacja stronicowania występuje błąd. Po włączeniu opcji pagaable jest OK. Wczytuję zawartość przez ajax. Gdy ładowanie treści zakończy się sukcesem, zainicjuję i skonfiguruję kontrolę siatki kendo po stronie klienta. – user2086031

Odpowiedz

-2

Nie jest jasne, jaki jest dokładny problem ... Wygląda na problem z synchronizacją.

Spróbuj ładowania treści z async: false

0

I w obliczu tego samego problemu, a tak nie jest poprawka dla niego, w zasadzie wystarczy zniszczyć siatkę przed przeniesieniem do nowej karcie ...

najlepszym sposobem rozwiązania tego problemu jest użycie tej funkcji w czasie będzie szukać sieci kendo i zniszczyć je

$("[kendo-grid]").each(function(idx,kGrid){ 
           var dataObj=$(kGrid).data(); 
           for(mData in dataObj) 
           { 
            if(typeOf dataObj[mData] != "string") 
            { 
             if("destroy" in dataObj[mData]) 
             { 
              dataObj[mData].destroy(); 
             } 
            } 
           } 
          }) 

Hope this helps ...