Почему возникает эта ошибка jqgrid Subgrid navButtonAdd Custom Button для FireFox и IE?

Есть ли ошибка с навигационными кнопками (будь то на верхнем или обычном пейджере), когда пользовательские кнопки добавляются в подсетку (с помощью jqgrid navButtonAdd), но только в FireFox и IE? Кажется, что это работает/выглядит нормально в 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

Любая помощь в исправлении этого будет принята с благодарностью.

Спасибо! :)


person psdev    schedule 14.09.2011    source источник
comment
Забыл добавить, что я использую последние (на момент публикации) jqgrid 4.1.2 и jquery 1.6.2, если это имеет значение...   -  person psdev    schedule 14.09.2011


Ответы (1)


Я все еще думаю, что это ошибка, и буду признателен за чью-либо помощь, почему это происходит только в подсетках и только в FireFox и IE, но не в Chrome...?

Тем не менее, я решил опубликовать хак, который не является «правильным способом» исправить это, но он работает косметически.

Внутри свойства subGridRowExpanded объекта colModel родительской сетки я поместил следующий код в свойство события gridComplete, чтобы он один раз устанавливал ширину кнопок навигации подсетки. сетка готова и готова к использованию. Это, мягко говоря, неэлегантный хак, но он работает.

Очевидно, что это жесткое кодирование ширины, что неприятно - и не сработало бы, если бы текст кнопки был динамическим из базы данных или чего-то еще, но для меня это нормально.

Итак, я проверил то, что Chrome сообщил как «правильную» ширину, а затем добавил этот код (очевидно, замените идентификаторы ваших кнопок navButtonAdd вместо моих):

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

надеюсь, что это полезно - но, пожалуйста, звоните, если у вас есть какие-либо комментарии или предложения, почему это так. @Олег?

Благодарность :)

person psdev    schedule 15.09.2011