2017-08-20 36 views
1

我尝试在我的jqGrid使用info_dialog,但见TypeError: $(...).jqGrid.info_dialog is not a function在控制台中。jqGrid.info_dialog不是函数,我必须调用extend吗?

我有(!)没有定义我自己info_dialog功能。但我可以在$.extend($.jgrid, ...中看到它,例如here,所以我期待它在默认情况下可用。

info_dialog : function(caption, content,c_b, modalopt) { 
     var mopt = { 
      width:290, 
      height:'auto', 

难道我不知道必须为网格启用它吗?或者还有什么做我必须做的,所以我可以使用的版本从https://cdnjs.com/libraries/jqgrid
定义here(我的网叫extend?..)

使用4.6.0现在使用https://cdnjs.com/libraries/free-jqgrid 4.14.1

+0

您使用哪个版本的jqGrid(可以使用)以及从哪个版本的jqGrid([免费jqGrid](https://github.com/free-jqgrid/jqGrid),商业版[Guriddo jqGrid JS] /guriddo.net/?page_id=103334)或<= 4.7版本中的旧jqGrid)。此外,在代码**中看到**如何调用'info_dialog'很重要。取决于你使用的jqGrid的版本,你可以像'$ .jgrid.info_dialog.call($(“#grid”)[0],...)''正确地初始化'this'。 – Oleg

回答

1

jqGrid不仅定义了“标准”方法,可以用作$("#grid").jqGrid("methodName", ...)$("#grid").methodName(...),但是还有其他一些方法。的“标准”方法将在$.fn.jqGrid.methodName(如$.fn.jqGrid.editGridRow功能例如)进行注册,并且如果之前$.jgrid.no_legacy_api = true;没有指定$.jgrid.no_legacy_api = true;,然后$.fn.methodName下太。

换句话说,只存在全局对象$.fn.jqGrid$.fn,其中包含“标准”jqGrid方法。

其他一些方法列表将在$.jgrid下注册,而不是$.fn.jqGrid$.fninfo_dialog就是这种方法的一个例子。因此,人们应该使用$.jgrid.info_dialog$.jgrid.jqID$.jgrid.htmlEncode$.jgrid.randId等来使用这些方法。大多数方法不需要初始化this(如$.jgrid.randId()$.jgrid.jqID("some.text")),但有些方法要求将this初始化为网格的DOM(用于生成网格的空<table>)。

例如,你可以使用

$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..."); 
         } 
        } 
       ] 
      } 
     ); 
    } 
}); 

https://jsfiddle.net/OlegKi/xLrbdspo/。我使用的是演示free jqGrid分叉,这是我开发的,但与使用jqGrid的复古版本4.6相同。

的最后一句话。如果你知道打字稿的语法,你可以在free-jqgrid.d.ts答案找到很多类似的info_dialog的使用问题。描述了$.jgrid的方法和性质here(包括info_dialog)。你会发现here另外一些方法$.fmatter, $.jqm, $.jqDnR$.unformat这是jqGrid的一部分,就像$.jgrid一样。

相关问题