2010-11-25 7 views
0

Ich kann jqgrid nicht mit dem verwenden. Betreiber wie in den Beispielen angegeben:Kann jqGrid-Funktionen nicht mit aufrufen. Operator

jQuery("#grid_id").editGridRow("new", options); 

ich folgende Fehlermeldung erhalten: Ich habe immer einen Anruf auf folgende Weise machen

jQuery("#grid_id").editGridRow is not a function

Statt:

jQuery("#grid_id").jqGrid("editGridRow", "new", options); 

I habe keine Probleme mit dem letzteren Ansatz - ich bin neugierig, warum ersteres funktioniert nicht für mich, wenn die meisten Beispiele und Tutorials mit der ehemaligen Ansatz

Dank

Antwort

2

Wahrscheinlich verwenden Sie den folgenden Code

jQuery.jgrid.no_legacy_api = true; 

irgendwo in Sie entweder direkt programmieren oder indirekt (siehe documentation). Der Code verbietet die Verwendung von "Old Style" API.

Durch die Art und Weise, wenn Sie in der Visual Studio wegen IntelliSense Unterstützung der Nutzung der „alten Stil“ API bevorzugen Sie den „neuen Stil“ API in wenig anderen Form verwenden:

jQuery("#grid_id").jqGrid.editGridRow ("new", options); 

statt von

jQuery("#grid_id").jqGrid ("editGridRow", "new", options); 

im Fall gibt es keine Konflikte mit anderen jQuery-Plug-Ins, die Nick Craver beschrieben, aber die IntelliSense wird auch weiterhin Arbeit:

alt text

und

alt text

+0

yup - das ist absolut richtig! Danke eine Tonne - ich wünschte, ich könnte dies wählen +10 – sami

+0

@sami: Willkommen! – Oleg

0

Dies ist nur die Art und Weise, wie die Plugin-Designer es getan haben. Die Alternative ist, alle ihre Methoden auf $.fn haben (die auf dem Prototyp, so auf jedes jQuery-Objekt), die ein paar Probleme haben:

  • Nun gibt es viele Methoden, auf jedem definierten Objekt
  • Mögliche Konflikte, was ist, wenn sie eine bereits genommene jQuery-Methode oder eine jQuery-Methode später hinzufügen möchten?

The list of methods jqGrid has isn't short, so ist dies eine Möglichkeit für sie, es unter Kontrolle und aufgeteilt zu halten. Auch dies ist nicht einzigartig für jqGrid ... zum Beispiel die jQuery UI Theming es akzeptiert, all of the widgets in that library folgen die gleiche Konvention.

+0

aber haben sie diese vor kurzem geändert? weil die Dokumentation sagt, dass dies gültig ist: jQuery ("# ​​grid_id"). jqGrid ('Methode', Parameter1, ... ParameterN); - http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods – sami

Verwandte Themen