为啥这个 jqgrid Subgrid navButtonAdd Custom Button bug for FireFox 和 IE 会发生?

Posted

技术标签:

【中文标题】为啥这个 jqgrid Subgrid navButtonAdd Custom Button bug for FireFox 和 IE 会发生?【英文标题】:Why is this jqgrid Subgrid navButtonAdd Custom Button bug for FireFox and IE happening?为什么这个 jqgrid Subgrid navButtonAdd Custom Button bug for FireFox 和 IE 会发生? 【发布时间】:2011-09-14 02:55:38 【问题描述】:

当自定义按钮添加到子网格(使用 jqgrid navButtonAdd)但仅在 FireFox 和 IE 中时,导航按钮(无论是在 toppager 还是常规寻呼机上)是否存在错误?它似乎在 Chrome 中工作/看起来很好 - 父网格的自定义按钮在 Firefox 和 IE 中也可以正常工作,这只是一个外观问题/悬停和大小问题,仅作为这些浏览器的子网格出现在网格中。

这是按钮大小和悬停位置的错误。

查看这张图片,了解我的意思: http://i.imgur.com/YLroY.png

我的代码(在子网格的 subGridRowExpanded 属性中)是这样的:

jQuery("#" + subgrid_table_id).jqGrid('navButtonAdd','#RedirectsTable_' + row_id + '_t_toppager_left',

    caption : "Add New Region Url... ", buttonicon : 'ui-icon-plus',
    id : "btnAddNewRegionUrl_" + subgrid_table_id,
    onClickButton : function()
    
        addNewRegionUrlRow("#" + subgrid_table_id, row_id);
    
).jqGrid('navButtonAdd','#RedirectsTable_' + row_id + '_t_toppager_left',
        
            caption : "Copy All ", buttonicon : 'ui-icon-copy',
            id : "btnCopyRegionUrls_" + subgrid_table_id,
            onClickButton : function()
            
                copyRegionUrlRows(row_id);
            
        ); // etc chaining them like this.  Also, I add buttons in this manner for the parent grid and to the bottom pager as well

任何解决此问题的帮助将不胜感激。

谢谢! :)

【问题讨论】:

忘了补充一下,我正在使用最新的(截至这篇文章)jqgrid 4.1.2 和 jquery 1.6.2,如果这有所不同... 【参考方案1】:

我仍然认为这是一个错误,并希望有人能提供帮助,了解为什么这只发生在子网格中并且只发生在 FireFox 和 IE 中,而不是 Chrome...?

但是,我想我会发布一个 hack,虽然它不是解决此问题的“正确方法”,但它确实可以在外观上发挥作用。

在父网格的 colModel 的 subGridRowExpanded 属性中,我将以下代码放在 gridComplete 事件属性中,以便设置这些子网格的宽度网格完成并准备好使用后,导航按钮。至少可以说这是一个不雅的技巧,但它确实有效。

显然,这是对宽度进行硬编码,这是令人讨厌的 - 如果按钮文本是来自数据库或其他东西的动态文本,则不会工作,但对我来说这没关系。

所以我检查了 Chrome 报告的“正确”宽度,然后添加了这段代码(显然用你的 navButtonAdd 按钮 ID 代替我的):

 gridComplete : function()
    
    //hack for FF & IE widths dont work in subgrid nav buttons- bug in jqgrid?
    $("#btnAddNewRegionUrl_" + subgrid_table_id).children(".ui-pg-div").width("133px");
    $("#btnCopyRegionUrls_" + subgrid_table_id).children(".ui-pg-div").width("63px");
    $("#btnPasteRegionUrls_" + subgrid_table_id).children(".ui-pg-div").width("63px");
    

希望这是有用的 - 但如果您有任何 cmets 或建议为什么会这样,请加入。 @奥列格?

谢谢:)

【讨论】:

以上是关于为啥这个 jqgrid Subgrid navButtonAdd Custom Button bug for FireFox 和 IE 会发生?的主要内容,如果未能解决你的问题,请参考以下文章

jqGrid的subGrid子表格

jqGrid subGrid配置 如何首次加载动态展开所有的子表格

jqgrid subGridRowExpanded出来的子表格如何获取选中的行?

如何在 subGrid 中绑定和取消绑定事件

jqGrid更改特定列标题的背景颜色

为啥jqGrid不会加载?