为什么FireFox和IE的这个jqgrid子网格navButtonAdd自定义按钮错误发生了?

时间:2011-09-14 02:55:38

标签: jqgrid pager subgrid

当自定义按钮添加到子网格(使用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

任何帮助解决这个问题都将非常感激。

谢谢! :)

1 个答案:

答案 0 :(得分:1)

我仍然认为这是一个错误,并且会感谢任何人的帮助,为什么这只发生在subgrids中,只发生在FireFox和IE而不是Chrome ......?

然而,我认为我会发布一个黑客,这不是解决这个问题的“正确方法”,但它确实可以用于美观。

在父网格的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");
    }

希望这很有用 - 但如果您有任何意见或建议,请发信息。 @Oleg?

谢谢:)