【问题标题】:JQGrid - Custom In-Line buttons not showingJQGrid - 自定义内联按钮不显示
【发布时间】:2015-07-31 00:54:16
【问题描述】:

我正在使用 jqgrid 3.8.2(我知道它很旧,我会在询问后尝试更新它:-))

我在 jqgrid 中添加了几个内联按钮,我正在使用默认格式化程序“操作”并在 loadComplete 事件中添加按钮。它工作正常,我可以添加我的自定义按钮,但问题是我不需要默认按钮,编辑和删除,所以当我继续隐藏它们时

formatoptions: { editButton:false, delButton:false }

它隐藏了一切;单独隐藏它们不是问题,但两者都是。

有什么建议吗?

【问题讨论】:

  • 该问题没有显示您添加的内联按钮并且现在不可见。如果您不想添加任何提供formatter: 'actions' 的按钮,那么不清楚为什么要使用格式化程序。最好使用自定义格式化程序添加按钮。请描述您需要在网格中拥有哪些按钮
  • 好吧,我就是这样做的,因为我没有找到其他选项,然后我想我会研究如何创建自定义格式化程序。谢谢!
  • 查看the documentation,搜索“自定义格式化程序”和“按钮”。如果您无法自己解决问题,您只需更清楚地描述您需要什么。您问题的当前文本说您只需添加一些“自定义按钮”。目前还不清楚您添加了哪种按钮(带有文本 img、带有背景图像的跨度、按钮、输入......)。点击按钮需要做什么(行选择与否,一些额外的动作等等)。当前代码没有提供您需要的信息。

标签: javascript jquery jqgrid


【解决方案1】:

我在 Olegs cmets 之后使用自定义操作格式化程序解决了这个问题

    function myCustomActionFormatter(cellValue, options, rowObject){
//I'm using the rowId so I can identify the button and get an easier access to the rowId itself :)
return '<div id="myCustomButton' + options.rowId  + '" class="myButtonClass">'
}

然后,在 loadcomplete 事件中,我使用 jquery 将事件添加到按钮:

$("#mygrid").jqgrid(... { name='act', width:100, formatter: myCustomActionFormatter}...
,loadcomplete:function(){
$(".myButtonClass").click(function() {//what I want to do});
});

【讨论】:

  • 一些备注:首先代码包含loadcomplete而不是loadComplete。秒有更有效的方法,因为你张贴。在每次重新加载网格时,您的代码使 单独 click 绑定到单元格的每个 &lt;div&gt;。取而代之的是,可以使用 existing click 绑定到父级:绑定到 &lt;table&gt;。可以使用beforeSelectRow 回调来分析e.target 是否为&lt;div&gt;。它更有效。有关详细信息,请参阅the answer。顺便说一句,您不需要在每个 &lt;div&gt; 上设置 id
猜你喜欢
  • 1970-01-01
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多