Jqgrid - 调用 onSelectRow 的另一种方式



通常我们调用onSelectRow函数,如下所示:

$("#imports_grid").jqGrid({
    // jqGrid settings
    url: url,
    datatype: "json",
    colNames: cnames,
    colModel: cmodel,
    onSelectRow: function() {
      // Code
    },
});

我的 PHP 脚本使用 json_encode() 输出 jqGrid 设置,所以它看起来像

$script = '$("#imports_grid").jqGrid(' . json_encode($js_settings) . ');';
// echo $script;

在这种情况下,onSelectRow 的函数不起作用。

有没有另一种方法可以在 onSelectRow 中触发函数?

你不需要在PHP脚本中混合HTML代码和JavaScript代码。取而代之的是,您可以放置<script>元素

<script type="text/javascript" src="theURL.js"></script>

在 PHP 脚本中。可以放在.JS文件中的 JavaScript 代码。

UPDATE:您可以在设置一些全局变量的内联 JavaScript 代码和使用变量的 JS 文件之间进行混合:

在您使用的 PHP 代码中

<script type="text/javascript">
    var MYGLOBALSETTINGS = {
        cnames: ["Column 1", "Column 2", ...],
        cmodel: [{...}, {...}...],
        url: "myUrl"
    };
</script>
<script type="text/javascript" src="my.js"></script>

my.js中,您只需使用MYGLOBALSETTINGS.cnamesMYGLOBALSETTINGS.cmodel

$("#imports_grid").jqGrid({
    // jqGrid settings
    url: MYGLOBALSETTINGS.url,
    datatype: "json",
    colNames: MYGLOBALSETTINGS.cnames,
    colModel: MYGLOBALSETTINGS.cmodel,
    onSelectRow: function() {
      // Code
    },
});

最新更新