Javascript jqgrid导航栏未正确渲染

Javascript jqgrid导航栏未正确渲染,javascript,jquery,jquery-plugins,jqgrid,Javascript,Jquery,Jquery Plugins,Jqgrid,我的一些jqGrids在导航栏上有一个奇怪的行为。 在其中一些按钮上,我使用默认的搜索和刷新按钮,在这些按钮上,导航区域向左浮动,显示在这些按钮的右侧(不应居中)。 最大的问题发生在我向搜索按钮“搜索”添加文本时。这会导致错误计算按钮边距,使霍伯效应边框比实际按钮宽度短。 但正如我所说,这只发生在某些情况下,我无法找出正常工作和不正常工作之间的区别。这不是一个浏览器问题,因为它在所有浏览器中都发生相同的情况 这是一个屏幕截图(注意带焦点的搜索按钮和导航控件的位置!): 以前有人遇到过这个问题

我的一些jqGrids在导航栏上有一个奇怪的行为。
在其中一些按钮上,我使用默认的搜索和刷新按钮,在这些按钮上,导航区域向左浮动,显示在这些按钮的右侧(不应居中)。

最大的问题发生在我向搜索按钮“搜索”添加文本时。这会导致错误计算按钮边距,使霍伯效应边框比实际按钮宽度短。

但正如我所说,这只发生在某些情况下,我无法找出正常工作和不正常工作之间的区别。这不是一个浏览器问题,因为它在所有浏览器中都发生相同的情况

这是一个屏幕截图(注意带焦点的搜索按钮和导航控件的位置!):

以前有人遇到过这个问题吗?
这是我在网格中的配置操作系统,存在以下问题:

$('#ProductBrandListGrid').jqGrid({
        url: '<%= ResolveUrl("~/Controls/ProductsControls/Controllers/ProductBrandController.ashx?method=GridDataList") %>',
        datatype: 'json',
        mtype: 'GET',
        colNames: ['Name', 'Description', 'Actions'],
        colModel: [
    { name: 'Name', index: 'Name', width: 100, align: 'left', resizable: true, sortable: true, searchoptions: { sopt: ['cn']} },
    { name: 'Description', index: 'Description', align: 'left', resizable: true, sortable: true, searchoptions: { sopt: ['cn']} },
    { name: 'act', index: 'act', width: 25, sortable: false, search: false },
    ],
        pager: $('#ProductBrandListGridPager'),
        rowNum: 15,
        rowList: [10, 15, 20, 30, 50, 100],
        sortname: 'Name',
        sortorder: 'asc',
        viewrecords: true,
        imgpath: '',
        caption: '',
        width: 200,
        height: 400,
        gridComplete: function () {
            var ids = jQuery("#ProductBrandListGrid").jqGrid('getDataIDs');
            for (var i = 0; i < ids.length; i++) {
                var cl = ids[i];

                ce2 = "<input type='button' value='details' onclick='ProductBrandItemOpen(\"" + cl + "\")' />";

                $("#ProductBrandListGrid").setRowData(ids[i], { act: ce2 });
            }
        }
    });

    /* Add this line to show search boxes on the header */
    $('#ProductBrandListGrid').jqGrid('filterToolbar', { stringResult: true, searchOnEnter: false });

    /* Add this line to allow advanced search using the toolbar button */
    $("#ProductBrandListGrid").jqGrid('navGrid', "#ProductBrandListGridPager", { search: true, edit: false, add: false, del: false, searchtext:"Search" });
$('ProductBrandListGrid').jqGrid({
url:“”,
数据类型:“json”,
mtype:'获取',
colNames:['Name','Description','Actions'],
colModel:[
{name:'name',index:'name',width:100,align:'left',reshable:true,sortable:true,searchoptions:{sopt:['cn']},
{name:'Description',index:'Description',align:'left',reshable:true,sortable:true,searchoptions:{sopt:['cn']},
{name:'act',index:'act',宽度:25,可排序:false,搜索:false},
],
寻呼机:$(“#ProductBrandListGridPager”),
rowNum:15,
行列表:[10,15,20,30,50,100],
sortname:'名称',
排序器:“asc”,
viewrecords:是的,
imgpath:“”,
标题:'',
宽度:200,
身高:400,
gridComplete:函数(){
var id=jQuery(“#ProductBrandListGrid”).jqGrid('getDataId');
对于(变量i=0;i
谢谢,
Alex

根据Oleg所说的网格初始宽度,我去做了一些测试

正如我所说,我有其他网格,工具栏上有自定义按钮,但没有这样的行为,但我找不到任何可能导致此问题的差异

检查我的其他实现时,我发现这只发生在初始宽度较低的实现上。如果我将初始宽度设置为500,它将正确居中,并在setGridWidth上正确重新定位自身。 我甚至可以说这个神奇的数字是415。初始宽度低于415px将导致此。。。任何等于或高于415px的值都将使jqGrid按预期运行。这让我觉得这是某种硬编码的最小宽度导致了这种窃听行为

谢谢你的帮助,奥列格。
Alex

我今天遇到了这个问题,并通过“检查元素”注意到,出于某种原因,我还没有弄清楚。甚至当宽度大于415时,以及在底部寻呼机上没有自定义按钮的网格时,也会发生这种情况。到目前为止,这似乎是相当随机的。出现此问题时,id为'xxxpagername_left'的td标记具有指定的宽度。在没有此问题的网格上,“xxxpagername_left”未设置宽度。因此,快速解决问题:

var pagerName = $($grid).jqGrid('getGridParam', 'pager');
$(pagerName + '_left').css('width', 'auto');
我有一个ResizeGrid方法,它在每个网格的默认loadComplete事件中激发;调整网格大小后,代码段将命中


不幸的是,我无法成功地将宽度设置为500或大于415。

按钮可能具有固定宽度。右键单击它并“检查元素”,查看css是否固定宽度您提到的所有内容都是css[表示]问题,与jqGridoh没有多大关系,为什么要使用
?属性这是一个糟糕的做法,你正在击败jquerys的任务(lool:)@Ariel:我没有为按钮指定任何宽度,除了jqGrid和JQueryUI平滑度之外,我没有在该页面上定义任何其他css@Val(1):是的,但我没有在上面设置任何样式,即使你忘记了按钮问题,为什么导航控件会向左浮动@瓦尔(2):我的坏。。。我保证我会把它改为delegates:)@AlexCode:从你发布的图片中可以看到网格的宽度超过了200px。所以你在某个地方设置了网格宽度。您的问题不会完全解决,但如果您将当前使用的
width
参数的值设置为200,则问题会减少。事实上,我从未解决过这个问题,我只是解决了它。那个项目已经结束了,但奇怪的是,3年后问题仍然存在……是的,这很奇怪,而且不容易复制。我想我应该为下一个人添加另一个“解决方案”。这对我也是如此,当宽度设置为null时,是否还有其他解决方案仍然遇到此问题。我需要width:null和shrinkToFit:false来调整大小,更改width有帮助,但我无法再正确调整大小,这是一个奇怪的问题。@AlexCode在您的javascript中,“\u left”前面有一个空格,这会导致脚本无法正确启动,您可以编辑它吗