jqGrid définit non seulement les méthodes "standard", qui peuvent être utilisées comme $("#grid").jqGrid("methodName", ...)
ou $("#grid").methodName(...)
, mais aussi d'autres méthodes. Les méthodes "standard" seront enregistrées sous $.fn.jqGrid.methodName
(comme $.fn.jqGrid.editGridRow
fonction par exemple) et, si aucun $.jgrid.no_legacy_api = true;
est spécifié avant $.jgrid.no_legacy_api = true;
, alors sous $.fn.methodName
aussi. En d'autres termes, il n'existe que l'objet global $.fn.jqGrid
ou $.fn
, qui contient les méthodes jqGrid "standard". Une autre liste de méthodes sera enregistrée sous $.jgrid
au lieu de $.fn.jqGrid
ou $.fn
. info_dialog
est un exemple d'une telle méthode. Ainsi, il faut utiliser $.jgrid.info_dialog
, $.jgrid.jqID
, $.jgrid.htmlEncode
, $.jgrid.randId
et ainsi de suite pour utiliser ces méthodes. La plupart des méthodes ne nécessitent pas d'initialiser this
(comme $.jgrid.randId()
$.jgrid.jqID("some.text")
), mais certaines méthodes nécessitent que this
soit initialisé à DOM de la grille (<table>
vide utilisé pour générer la grille).
Par exemple, vous pouvez utiliser
$grid.jqGrid("navButtonAdd", "#pager", {
caption: "Test",
onClickButton: function() {
$.jgrid.info_dialog.call(this,
"Warning with two buttons",
"Click the `test` button",
"Close",
{
buttons: [
{
text: "\"text\" button",
id: "buttid",
onClick: function() {
alert("click...");
}
}
]
}
);
}
});
Voir https://jsfiddle.net/OlegKi/xLrbdspo/. J'utilise dans la démo free jqGrid la fourche, que je développe, mais la même chose fonctionne avec la version rétro 4.6 de jqGrid, que vous utilisez.
La remarque finale. Si vous connaissez la syntaxe de TypeScript, que vous pouvez trouver dans free-jqgrid.d.ts réponses sur de nombreuses questions comme l'utilisation de info_dialog
. Les méthodes et propriétés de $.jgrid
sont décrites here (inclus info_dialog). Vous trouverez here en outre quelques méthodes $.fmatter
, $.jqm
, $.jqDnR
et $.unformat
qui sont la partie de jqGrid de la même manière comme $.jgrid
.
Quelle version de jqGrid vous utilisez (pouvez utiliser) et de quelle fourche de jqGrid ([free jqGrid] (https://github.com/free-jqgrid/jqGrid), commercial [Guriddo jqGrid JS] (http://guriddo.net/?page_id=103334) ou un ancien jqGrid en version <= 4.7). De plus, il est important de voir ** comment vous appelez 'info_dialog' dans votre code **. Selon la version de jqGrid, que vous utilisez, vous pouvez initialiser 'this' correctement comme' $ .jgrid.info_dialog.call ($ ("# grid") [0], ...) '. – Oleg