2014-09-22 115 views
0

我正在使用以下jqgrid,它在jqgrid中完美工作,但它不在mozilla中显示33.0在chrome中显示的内容。col宽度在jqgrid中使用,在铬中完美工作,但在mozilla中不工作33.0版本

<script type="text/javascript" src="js/viewTestReq.js"></script> 
<script type="text/javascript" src="../js/popup/popup.js"></script> 
<script type="text/javascript" 
     src="http://code.jquery.com/jquery-1.7.1.min.js"></script> 
<script type="text/javascript" 
     src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js"></script> 
<script type="text/javascript" 
     src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.6.0/plugins/ui.multiselect-fixed.js"></script> 
<script type="text/javascript" 
     src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.6.0/js/i18n/grid.locale-en.js"></script>  
<script type="text/javascript" 
     src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.6.0/js/jquery.jqGrid.src-columnChooser.js"></script> 
<script type="text/javascript" 
     src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.6.0/plugins/jQuery.jqGrid.setColWidth.js"></script> 

<link rel="stylesheet" type="text/css" 
     href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/themes/redmond/jquery-ui.css"> 
<link rel="stylesheet" type="text/css" 
     href="http://cdnjs.cloudflare.com/ajax/libs/jqgrid/4.6.0/css/ui.jqgrid.css"> 
<link rel="stylesheet" type="text/css" 
     href="http://cdnjs.cloudflare.com/ajax/libs/jqgrid/4.6.0/plugins/ui.multiselect.css"> 

和JavaScript代码

$("#list1").on("jqGridSortCol", function (e, sortName, iCol, sortOrder) { 
    alert("sortName=" + sortName + "\niCol=" + iCol + "\nsortOrder=" + sortOrder); 
    //$("#list1").trigger("reloadGrid"); 

    var myorder=sortOrder; 
    if (sortName === "idreleaseRequest") { 
     alert(sortOrder); 
     var ord=sortOrder; 
     alert(ord); 

    } 
}); 

$("#list1").jqGrid("GridUnload") 
$("#list1").jqGrid({ url:"./controllers/apGetTestData.php?testanzres=1&testsuite="+testsuite+"&testcase="+testcase+"&ch="+ch+"&fromdate="+fromdate+"&todate="+todate+"&mmss="+mmss, datatype: 'xml', mtype: 'GET', height: 'auto', 
    colNames:[ 'RRID', 'Release Tag','Completed Date','Result','Firm Ware','DUT','Summary','Remarks'], 
    colModel:[ 
     {name:'idreleaseRequest', index:'idreleaseRequest', width:80, sorttype: 'int'}, 
     {name:'releaseRequestTag', index:'releaseRequestTag'}, 
     {name:'DateInfo', index:'Date Info'}, 
     {name:'Result', index:'Result', sortable:false}, 
     {name:'FirmWare', index:'FirmWare', sortable:false}, 
     {name:'DUT', index:'DUT', sortable:false}, 
     {name:'Summary', index:'Summary', sortable:false, align:'left'}, 
     {name:'Remarks', index:'Total Suites', sortable:false}], 
    pager: $('#pager1'), 
    rowNum:6, 
    rowList:[6,12,18,24], 
    sortname: 'idreleaseRequest', 
    sortorder: "DESC", 
    caption:"Test Results : "+ globalData,  
    height: 'auto', 
    viewrecords: true, 
    gridview: true, 
    caption: "test", 
    rownumbers:true, 
    shrinkToFit:false, 
    hidedlg: true 
}); 
$('#list1').jqGrid("setLabel", "rn", "SNo"); 

$("#list1").on("jqGridAfterLoadComplete jqGridRemapColumns", function() { 
    var $this = $(this), 
     $cells = $this.find(">tbody>tr>td"), 
     $colHeaders = $this.closest(".ui-jqgrid-view").find(">.ui-jqgrid-hdiv>.ui-jqgrid-hbox>.ui-jqgrid-htable>thead>.ui-jqgrid-labels>.ui-th-column>div"), 
     colModel = $this.jqGrid("getGridParam", "colModel"), 
     iCol, 
     iRow, 
     rows, 
     row, 
     n = $.isArray(colModel) ? colModel.length : 0, 
     cm, 
     colWidth, 
     idColHeadPrexif = "jqgh_" + this.id + "_"; 
    $cells.wrapInner("<span class='mywrapping'></span>"); 
    $colHeaders.wrapInner("<span class='mywrapping'></span>"); 

    for (iCol = 0; iCol < n; iCol++) { 
     cm = colModel[iCol]; 
     colWidth = $("#" + idColHeadPrexif + $.jgrid.jqID(cm.name) + ">.mywrapping").outerWidth() + 25; // 25px for sorting icons 
     for (iRow = 0, rows = this.rows; iRow < rows.length; iRow++) { 
      row = rows[iRow]; 
      if ($(row).hasClass("jqgrow")) { 
       colWidth = Math.max(colWidth, $(row.cells[iCol]).find(".mywrapping").outerWidth()); 
      } 
     } 
     $this.jqGrid("setColWidth", iCol, colWidth); 
    } 
}); 

这是我使用的jqGrid整个代码,它是在铬可以正常使用,并且它在什么,我希望是铬正确显示,但在Mozilla 33.0中,它无法正确显示Chrome显示的内容。请任何人都帮助我,提前谢谢。

function ShowHideColumn() { 
       $.extend(true, $.ui.multiselect, { 
       locale: { 
        addAll: 'Make all visible', 
        removeAll: 'Hide All', 
        itemsCount: 'Avlialble Columns' 
       } 
      }); 
      $.extend(true, $.jgrid.col, { 
       width: 450, 
       modal: true, 
       msel_opts: {dividerLocation: 0.5}, 
       dialog_opts: { 
        minWidth: 470, 
        show: 'blind', 
        hide: 'explode' 
       } 
      }); 
      $("#list1").jqGrid("setColProp", "rn", {hidedlg: false}); 
     $('#list1').jqGrid('columnChooser', 
     { 

      done: function(perm) { 
       if (perm) { self.jqGrid("remapColumns", perm, true); }  

     } 
     }); 


} 
+0

你用* beta *版本的Mozilla Firefox 33测试了代码吗? Firefox的当前发行版本是32.0.2。您在Mozilla 33中写下了“它无法正确显示”。究竟哪个不正确?您可以从[答案](http://stackoverflow.com/a/20030652)[原始演示](http://www.ok-soft-gmbh.com/jqGrid/ChangeColumnWidth.htm)重现问题/ 315935)?你的演示仍然使用'name'和空格'name:'Firm Ware''这是不推荐的。 – Oleg 2014-09-22 05:10:13

+0

这是链接图像什么显示铬[链接](http://s21.postimg.org/kec55xsmv/chromemain.jpg)铬,这是图像的链接什么是在Mozilla中dislpaying [链接](http ://s24.postimg.org/63ix0eqdh/mozillamain.jpg)Mozilla – Sravya 2014-09-22 05:12:11

+0

您好Oleg,非常高兴您的回复,我发布了两张图片,展示了他们如何看待Chrome和Mozilla。 – Sravya 2014-09-22 05:15:30

回答

1

首先:你用错误的HTML标记在您的演示:

<table id="list_records"><div id="perpage"></div></table> 

应固定

<table id="list_records"></table><div id="perpage"></div> 

秒你永久使用不同index值作为name值({name:'FirmWare',index:'name'}例如)。 我强烈建议您从colModel中删除所有index属性。使用index值的值与列中网格断点排序的name值不同。

第三:即使在我的电脑上安装Mozilla Firefox 33.0 beta 5(Windows 7)我无法重现您的问题:加载后所有列的宽度似乎是正确的。如果我按Asc或Desc方向排列最后一列,我也会得到所有列的正确宽度值。

修订:在我看来,这里面实现基于最大列列的宽度设置的代码包含应由线cm = colModel[iCol];后加入if (cm.hidden) { continue; }固定:

$("#list1").on("jqGridAfterLoadComplete jqGridRemapColumns", function() { 
    var $this = $(this), 
     $cells = $this.find(">tbody>tr>td"), 
     $colHeaders = $this.closest(".ui-jqgrid-view").find(">.ui-jqgrid-hdiv>.ui-jqgrid-hbox>.ui-jqgrid-htable>thead>.ui-jqgrid-labels>.ui-th-column>div"), 
     colModel = $this.jqGrid("getGridParam", "colModel"), 
     iCol, 
     iRow, 
     rows, 
     row, 
     n = $.isArray(colModel) ? colModel.length : 0, 
     cm, 
     colWidth, 
     idColHeadPrexif = "jqgh_" + this.id + "_"; 
    $cells.wrapInner("<span class='mywrapping'></span>"); 
    $colHeaders.wrapInner("<span class='mywrapping'></span>"); 

    for (iCol = 0; iCol < n; iCol++) { 
     cm = colModel[iCol]; 
     if (cm.hidden) { 
      continue; 
     } 
     colWidth = $("#" + idColHeadPrexif + $.jgrid.jqID(cm.name) + ">.mywrapping").outerWidth() + 25; // 25px for sorting icons 
     for (iRow = 0, rows = this.rows; iRow < rows.length; iRow++) { 
      row = rows[iRow]; 
      if ($(row).hasClass("jqgrow")) { 
       colWidth = Math.max(colWidth, $(row.cells[iCol]).find(".mywrapping").outerWidth()); 
      } 
     } 
     $this.jqGrid("setColWidth", iCol, colWidth); 
    } 
}); 

看到the demo

+0

嗨奥列格,我解决了我的问题,我得到另一个问题,即使用列选择器后,列宽选择列后,不工作,我正在写列选择器的单独函数,我在上面添加代码,请参阅并帮助我。 – Sravya 2014-09-22 10:44:33

+0

@Sravya:查看** UPDATED **部分代码。此外,我建议您查看[demo](http://www.ok-soft-gmbh.com/jqGrid/WorkingColumnChooser_.htm)的代码,该代码使用固定版本的'columnChooser',您可以在[这里]找到( http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.6.0/plugins/jQuery.jqGrid.columnChooser.js)或[这里](https://github.com/OlegKi/jqGrid -plugins /斑点/主/ jQuery.jqGrid.columnChooser.js)。 – Oleg 2014-09-22 12:22:36

+0

嗨@奥列格,我不知道是否问这里或不是,但我问, – Sravya 2014-09-23 06:56:30

相关问题