jqGrid创建单独的函数

jqGrid creating separate function

本文关键字:函数 单独 创建 jqGrid      更新时间:2023-09-26

如何将function subGridRowExpanded分离到另一个函数并转换为subGridRowExpanded :

subGrid: Hierarchy,
subGridOptions : {
   plusicon : "ace-icon fa fa-plus center bigger-110 blue",
   minusicon  : "ace-icon fa fa-minus center bigger-110 blue",
   openicon : "ace-icon fa fa-chevron-right center orange" }, 
subGridRowExpanded: function subGridRowExpanded(subgrid_id, row_id) 
{ 
   //somecode
}

我不确定我是否正确理解了你的问题。我想你不希望使用anonymous函数作为subGridRowExpanded的值。在这种情况下,JavaScript中有两种标准方法:

1)定义变量并为其赋值匿名函数

var mySubGridRowExpanded = function (subgridDivId, rowId) {
        // here one can use 'this' to access to the grid
        // for example
        //
        // var mainGridPrefix = $(this).jqGrid("getGridParam", "idPrefix"),
        //     pureRowId = $.jgrid.stripPref(mainGridPrefix, rowId);
        // create empty table and div with unique ids which we construct base on
        // id of subgrid div created by jqGrid before calling of mySubGridRowExpanded
        var $subgrid = $("<table id='" + subgridDivId + "_t'></table>" +
                         "<div id='" + subgridDivId + "_p" + "'></div>");
        // append the subgrid to the subgrid div
        $subgrid.appendTo("#" + $.jgrid.jqID(subgridDivId));
        // create subgrid as jqGrid
        $subgrid.jqGrid({
            ...
        });
    };

2)定义命名为function,就像你在其他计算机语言中知道的那样。对于这种情况,可以在Javascript中使用术语函数语句。前一种方法(使用var mySubGridRowExpanded = function (subgridDivId, rowId) {...};)命名函数表达式。您可以使用该函数的名称作为jqGrid的subGridRowExpanded属性的值。

function mySubGridRowExpanded (subgridDivId, rowId) {
    // the same code as above with small disadvantage
    // that one could have warnings by some JavaScript
    // validators that 'this' could be undefined.
}

在这两种情况下,您都可以使用jqGrid选项,如

subGrid: true,
subGridOptions : {
    plusicon : "ace-icon fa fa-plus center bigger-110 blue",
    minusicon  : "ace-icon fa fa-minus center bigger-110 blue",
    openicon : "ace-icon fa fa-chevron-right center orange" }, 
subGridRowExpanded: mySubGridRowExpanded
在我最喜欢的语言中,JavaScript有另一种函数语义,因为它可以定义类和对象。所以我个人更喜欢第一种方式(函数表达式)的定义mySubGridRowExpanded函数(var mySubGridRowExpanded = function (subgridDivId, rowId) {...};)