2012-09-03 49 views
0

我想讓jqGrid第一次工作。我複製一個例子,幾乎一字不差,這裏是我的代碼:讓jqGrid第一次工作

<html> 
<head> 
<title>hi</title> 

<script src="http://code.jquery.com/jquery-1.8.1.min.js" type="text/javascript"></script> 

<link type="text/css" href="jquery-ui-bootstrap/css/custom-theme/jquery-ui-1.8.16.custom.css" rel="stylesheet" /> 
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" /> 

<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script> 
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script> 

<script type="text/javascript"> 

jQuery("#list2").jqGrid({ 
    datatype: "local", 
    height: 250, 
    colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'], 
    colModel:[ 
     {name:'id',index:'id', width:60, sorttype:"int"}, 
     {name:'invdate',index:'invdate', width:90, sorttype:"date"}, 
     {name:'name',index:'name', width:100}, 
     {name:'amount',index:'amount', width:80, align:"right",sorttype:"float"}, 
     {name:'tax',index:'tax', width:80, align:"right",sorttype:"float"},  
     {name:'total',index:'total', width:80,align:"right",sorttype:"float"},  
     {name:'note',index:'note', width:150, sortable:false}  
    ], 
    multiselect: true, 
    caption: "Manipulating Array Data" 
}); 
var mydata = [ 
     {id:"1",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 
     {id:"2",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 
     {id:"3",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, 
     {id:"4",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 
     {id:"5",invdate:"2007-10-05",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 
     {id:"6",invdate:"2007-09-06",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, 
     {id:"7",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 
     {id:"8",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 
     {id:"9",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"} 
     ]; 
for(var i=0;i<=mydata.length;i++) 
    jQuery("#list2").jqGrid('addRowData',i+1,mydata[i]); 

</script> 

</head> 
<body> 

hi 

<table id="list2"></table> 
<div id="pager2"></div> 


</body> 
</html> 

我知道我的.js文件路徑是正確的,因爲JavaScript控制檯沒有拋出任何錯誤。另外,我的樣式表(jquery-ui-bootstrap)確實存在於該目錄中。 (當我查看源文件,然後點擊鏈接到該CSS文件時,Chrome瀏覽器正確導航到它。)

但是,頁面只顯示「hi」。幫幫我?

回答

2

您的代碼在定義表(#list2)之前正在執行。

有兩種簡單的方法來解決這個問題,其中任何一個都可以工作:

  • 移動的JavaScript代碼只是</body>標記之前。
  • 使用jQuery的document.ready事件在整個文檔加載時執行您的代碼。
+0

哇。這工作。我從來不會猜到(我是jquery的新手 - 當在''中定義時,通常是正常的javascript工作,對嗎?當我使用document.getElementById()更新元素時​​?) – poundifdef

+0

您不能引用不會引用'現在還沒有(不管你是否使用jQuery)。引用'body'中元素的'head'中的JavaScript只有在瀏覽器讀取到「body」後才執行,例如,如果它附加到像'window.onload'這樣的事件 – georgebrock

相關問題