2012-01-27 3 views
3

격자 표를 만들려면이 코드가 필요합니다.reloadGrid 후 마지막 행이 표시되지 않습니다.

<script type="text/javascript"> 
var mydata = [ 
{State:'Azerbaijan', cont:'Asia', '2009':'10100', '2008':'61600', '2007':'39200', '2006':'31900', '2005':'31800', '2004':'29500', '2003':'18600', '2002':'58', '2001':'57'}, 
{State:'Bosnia and Herzegovina', cont:'Europe', '2009':'96000', '2008':'123000', '2007':'121800', '2006':'136200', '2005':'131200', '2004':'121294', '2003':'112503', '2002':'102271', '2001':'95064'}, 
{State:'France', cont:'Europe', '2009':'345000', '2008':'389000', '2007':'427800', '2006':'442100', '2005':'437900', '2004':'446900', '2003':'444100', '2002':'463200', '2001':'713000', '2000':'701000', '1999':'694000'}, 
{State:'Germany', cont:'Europe', '2009':'291800', '2008':'605876', '2007':'551030', '2006':'515539', '2005':'647934', '2004':'667800', '2003':'660800', '2002':'652800', '2001':'651600', '2000':'643545', '1999':'633803'}, 
{State:'Greece', cont:'Europe', '2009':'134737', '2008':'162339', '2007':'167937', '2006':'164528', '2005':'165300', '2004':'166634', '2003':'167797', '2002':'165262', '2001':'163581', '2000':'167507', '1999':'170301'}, 
{State:'Iceland', cont:'Europe', '2009':'810000', '2008':'760000', '2007':'515000', '2006':'328424', '2005':'272400', '2004':'271300', '2003':'265900', '2002':'263528', '2001':'242526', '2000':'225721', '1999':'221433'}, 
{State:'Italy', cont:'Europe', '2009':'165800', '2008':'186400', '2007':'179500', '2006':'194200', '2005':'192900', '2004':'195400', '2003':'191400', '2002':'190400', '2001':'187400', '2000':'210000', '1999':'205567'}, 
{State:'Netherlands', cont:'Europe', '2009':'306000', '2008':'321200', '2007':'296900', '2006':'285300', '2005':'333800', '2004':'327000', '2003':'282800', '2002':'284400', '2001':'293200', '2000':'301700', '1999':'270000'}, 
{State:'Norway', cont:'Europe', '2009':'1125000', '2008':'1358800', '2007':'1362000', '2006':'1383000', '2005':'1391000', '2004':'1321700', '2003':'1192000', '2002':'1044000', '2001':'1100000', '2000':'1030000', '1999':'1000000'}, 
{State:'Poland', cont:'Europe', '2009':'10300', '2008':'29500', '2007':'57600', '2006':'55900', '2005':'53600', '2004':'58900', '2003':'57200', '2002':'58800', '2001':'45000', '2000':'45100', '1999':'46750'} 
]; 
jQuery("#list").jqGrid({ 
    height: 500, 
    width: 672, 
    rowNum: -1, 
    shrinkToFit:false, 
    datatype: 'local', 
    colNames:['State', 'cont','1999','2000','2001','2002','2003','2004','2005','2006','2007','2008','2009'], 
    colModel :[ 
{name:'State', index:'State', width:170}, 
{name:'cont', index:'cont'}, 
{name:'1999', index:'1999', width:80, align:'right', formatter:'integer', sorttype:'integer', summaryType:'sum'}, 
{name:'2000', index:'2000', width:80, align:'right', formatter:'integer', sorttype:'integer', summaryType:'sum'}, 
{name:'2001', index:'2001', width:80, align:'right', formatter:'integer', sorttype:'integer', summaryType:'sum'}, 
{name:'2002', index:'2002', width:80, align:'right', formatter:'integer', sorttype:'integer', summaryType:'sum'}, 
{name:'2003', index:'2003', width:80, align:'right', formatter:'integer', sorttype:'integer', summaryType:'sum'}, 
{name:'2004', index:'2004', width:80, align:'right', formatter:'integer', sorttype:'integer', summaryType:'sum'}, 
{name:'2005', index:'2005', width:80, align:'right', formatter:'integer', sorttype:'integer', summaryType:'sum'}, 
{name:'2006', index:'2006', width:80, align:'right', formatter:'integer', sorttype:'integer', summaryType:'sum'}, 
{name:'2007', index:'2007', width:80, align:'right', formatter:'integer', sorttype:'integer', summaryType:'sum'}, 
{name:'2008', index:'2008', width:80, align:'right', formatter:'integer', sorttype:'integer', summaryType:'sum'}, 
{name:'2009', index:'2009', width:80, align:'right', formatter:'integer', sorttype:'integer', summaryType:'sum'} 
    ], 
    sortname: 'State', 
    grouping:true, 
    groupingView : { 
     groupField : ['cont'], 
     groupSummary : [true], 
     groupColumnShow : [true], 
     groupText : ['<b>{0}</b>'], 
     groupCollapse : false, 
    groupOrder: ['asc'] 
    }, 
}); 
for(var i=0;i<=mydata.length;i++) 
    jQuery("#list").jqGrid('addRowData',i+1,mydata[i]); 
jQuery("#list").trigger("reloadGrid"); 
jQuery("#list").hideCol("cont"); 
</script> 

그리고 jQuery("#list").trigger("reloadGrid");은 마지막 행을 그릴 수 없습니다. 그러나 그것은 여전히 ​​남아 있습니다 - 그것은 합계로 집계되지 않을 것이지만, 다른 열로 정렬 할 때, 다른 행은 마지막이되고 사라지고 이전은 다시 보여집니다.

+0

읽을 수있는 코드가 더 좋은 형식 – Adrian

+0

sry ... reformated – Quarath

답변

5

rowNum: 10000과 같이 충분히 큰 값 대신에 rowNum: -1을 주된 오류로 사용합니다.

또한 당신이 gridview: true있는 jqGrid의 매개 변수 대신 addRowData 관련 그리드의 훨씬 더 느린 충전의 data: mydata를 사용한다 (또한 대신 <의 루프에서 <=를 사용).

또한 코드를 줄이고 더 읽을 수있는 column templates을 사용하는 것이 좋습니다. 변경 결과로 here을 볼 수 있습니다.

+0

감사합니다. 이것은 jQuary를 처음 사용하기 때문에 실수로 대부분의 예제 (예 : http://trirand.com/blog/jqgrid/jqgrid.html)에서 복사하여 붙여 넣었습니다. – Quarath

+0

@Quarath : 데모 페이지에 많은 실수가 있다는 데 동의하지만이 문제를 해결할 수는 없습니다. 오류를 [trirand] (http://www.trirand.com/blog/?page_id=393/bugs/)에 게시해야합니다. 당신의 주된 문제는 무엇입니까? "마지막 줄이 보이지 않습니다"? 'rowNum : -1' 대신'rowNum : 10000'을 사용하여 수정 되었습니까? 문제가 해결되면 답변을 [ "수락"] (http://meta.stackexchange.com/a/5235/147495)로 표시해야합니다. – Oleg

관련 문제