2010-04-16 71 views
0

我有一个jqGrid的使用时的XMLReader与由RoR的服务吐出来的数据来填充自己的网页。该页面加载罚款Firefox和Safari浏览器。在Chrome中,我得到一个空白的网格。只有当我通过点击列来更改排序顺序时,它才会填充。为什么不会jqGrid的最初填充在Chrome

<html> 
<head> 
    <title>LocalFx</title> 
    <link href="/stylesheets/main.css?1271423251" media="screen" rel="stylesheet" type="text/css" /> 


    <link href="/stylesheets/redmond/jquery-ui-1.8.custom.css?1271404544" media="screen" rel="stylesheet" type="text/css" /> 
    <link href="/stylesheets/ui.jqgrid.css?1265561560" media="screen" rel="stylesheet" type="text/css" /> 
    <script src="/javascripts/jquery-1.3.2.min.js?1259426008" type="text/javascript"></script> 
    <script src="/javascripts/i18n/grid.locale-en.js?1266140090" type="text/javascript"></script> 
    <script src="/javascripts/jquery.jqGrid.min.js?1271437772" type="text/javascript"></script> 



    <script type="text/javascript"> 

     jQuery().ready(function() { 
      jQuery("#list").jqGrid({ 
       xmlReader: { 
        root:"contracts", 
        row:"contract", 
        repeatitems:false, 
        id:"id" 
       }, 
       jsonReader: { 
        repeatitems:false, 
        root:"contracts" 
       }, 
       datatype: 'xml', 
       url:'http://localhost:3000/contracts/index/all.xml', 
       mtype: 'GET', 
       colNames:['User','B/S', 'Currency', 'Amount', 'Rate'], 
       colModel :[ 
        {name:'user', index:'username', width:100 , xmlmap:'user>username'} , 
        {name:'side', index:'side', width:100 , xmlmap:'side'} , 
        {name:'currency', index:'ccy', width:100 , xmlmap:'currency>ccy'} , 
        {name:'amount', index:'amount', width:100 , xmlmap:'amount'}, 
        {name:'rate', index:'rate', width:100 , xmlmap:'exchange-rate>rate'} 
       ], 
       pager: jQuery('#pager'), 
       caption: 'Contracts', 
       sortname: 'side', 
       sortorder: "asc", 
       viewrecords:true, 

       rowNum:10, 
       rowList:[10,20,30] 
      }); 
      $("#list").trigger("reloadGrid") 
     }); 
    </script> 


</head> 
<body> 

<table id="list" align="center" class="scroll"></table> 
<div id="pager" class="scroll" style="text-align:center;"></div> 

</body> 
</html> 

这是XML:

<contracts type="array"> 
    <contract> 
    <amount type="float">1000.0</amount> 
    <created-at type="datetime">2010-04-16T13:59:40Z</created-at> 
    <currency-id type="integer">488525179</currency-id> 
    <id type="integer">18277852</id> 
    <side>BUY</side> 
    <updated-at type="datetime">2010-04-16T13:59:40Z</updated-at> 
    <user-id type="integer">830138774</user-id> 
    <exchange-rate> 
     <contract-id type="integer">18277852</contract-id> 
     <created-at type="datetime">2010-04-16T13:59:40Z</created-at> 
     <denccy-id type="integer">890731696</denccy-id> 
     <id type="integer">419011264</id> 
     <numccy-id type="integer">488525179</numccy-id> 
     <rate type="float">1.3</rate> 
     <updated-at type="datetime">2010-04-16T13:59:40Z</updated-at> 
    </exchange-rate> 
    <user> 
     <created-at type="datetime">2010-04-16T13:59:40Z</created-at> 
     <id type="integer">830138774</id> 
     <updated-at type="datetime">2010-04-16T13:59:40Z</updated-at> 
     <username>John Doe</username> 
    </user> 
    <currency> 
     <ccy>EUR</ccy> 
     <created-at type="datetime">2010-04-16T13:59:40Z</created-at> 
     <id type="integer">488525179</id> 
     <updated-at type="datetime">2010-04-16T13:59:40Z</updated-at> 
    </currency> 
    </contract> 
    <contract> 
    <amount type="float">500.0</amount> 
    <created-at type="datetime">2010-04-16T13:59:40Z</created-at> 
    <currency-id type="integer">890731696</currency-id> 
    <id type="integer">716237132</id> 
    <side>SELL</side> 
    <updated-at type="datetime">2010-04-16T13:59:40Z</updated-at> 
    <user-id type="integer">830138774</user-id> 
    <exchange-rate> 
     <contract-id type="integer">716237132</contract-id> 
     <created-at type="datetime">2010-04-16T13:59:40Z</created-at> 
     <denccy-id type="integer">890731696</denccy-id> 
     <id type="integer">861902380</id> 
     <numccy-id type="integer">488525179</numccy-id> 
     <rate type="float">1.3</rate> 
     <updated-at type="datetime">2010-04-16T13:59:40Z</updated-at> 
    </exchange-rate> 
    <user> 
     <created-at type="datetime">2010-04-16T13:59:40Z</created-at> 
     <id type="integer">830138774</id> 
     <updated-at type="datetime">2010-04-16T13:59:40Z</updated-at> 
     <username>John Doe</username> 
    </user> 
    <currency> 
     <ccy>GBP</ccy> 
     <created-at type="datetime">2010-04-16T13:59:40Z</created-at> 
     <id type="integer">890731696</id> 
     <updated-at type="datetime">2010-04-16T13:59:40Z</updated-at> 
    </currency> 
    </contract> 
</contracts> 
+0

打开检查,确认是否有JavaScript错误,是由Ajax请求,他们怎么回... – queen3 2010-04-17 13:47:56

+0

嗨,没有JavaScript错误,我查了。 – Maxm007 2010-04-18 11:34:19

回答

0

调用$("#list").trigger("reloadGrid")而不是网格对象初始化后,尝试从loadComplete,数据从URL加载后调用它称之为:

jQuery("#list").jqGrid({ 
    ... 
    rowList:[10,20,30], 
    loadComplete: function(){ 
     ("#list").trigger("reloadGrid") 
    } 
}); 
2

对不起,但您如何验证http://www.ok-soft-gmbh.com/jqGrid/XmlTest/xmlorg.htm您的原始代码在Chrome(“4.1.249.1045(42898)”或“5.0.342.9 beta”)中正常工作。我不包含main.css,因为你没有发布它。

我可以说,该行

$("#list").trigger("reloadGrid") 

(不通过的方式分号)可以被删除。和jqGrid的表格和网页DIV可以减少到

<table id="list"></table> 
<div id="pager"></div> 

(见http://www.ok-soft-gmbh.com/jqGrid/XmlTest/xml.htm),但所有帮你不是真的。我的建议是:

  • 使用当前版本的jqGrid的(3.6.4)
  • 验证你检查,你需要在下载从http://www.trirand.com/blog/?page_id=6最小的jqGrid的所有版本的jqGrid部分。如果你不确定 - 全部检查。或者使用GitHub的最后一个版本(特别是如果您使用jQuery 1.4.x),如果jqGrid的未压缩版本对您来说可以。

我想,你的错误是因为使用错误的最小化版本的jqGrid(没有你真正需要的某些部分)。另一个不太可能的错误是你的main.css文件。

问候

+0

对不起,该reloadGrid行被添加到试图强制它。忘了删除它。 main.css文件不包含任何内容。 – Maxm007 2010-04-18 11:37:43

+0

我想我在下载最低版本时检查了所有内容。当我解压时,我有3个文件夹。 CSS,JS和SRC。我使用jquery 1.3.2,jqgrid 3.6.4包含.min脚本的CSS和JS文件夹的文件。我没有对/ SRC文件夹做任何事情。 – Maxm007 2010-04-18 11:43:43

+0

您发布的URL中的kqgrid在Chrome中加载正常 – Maxm007 2010-04-18 11:52:46

0

,因为我的评论我的回答是不容易看到的,我贴了同样的信息作为第二个答案:

这是非常奇怪的!我刚刚下载了jqGrid和所有选中的复选框,并更改了xmlorg.htm以使用jquery-1.3.2的最小版本:所有作品。所以最后的建议是:你从http://www.ok-soft-gmbh.com/jqGrid/XmlTest/XmlTest.zip下载我用过的所有文件。然后解压缩,将所有内容放在网站上,例如localhost(IIS)。将url修复到all.xml并从您的网站打开xmlorg.htm或xml.htm。它必须工作!

0

我正在使用jquery 1.5.2和jqgrid 4.0。 类似的问题发生在Chrome 5.0.396.0,但其他Chrome版本和IE/FF运行良好。

我也用jquery 1.4.4测试过,这个问题依然存在。 但是,当我用jQuery 1.3.2测试时,问题就解决了。在Chrome

相关问题