2012-05-01 204 views
0

我正在使用jQuery網格插件jqGrid來顯示數據數組。jqGrid無法正常顯示

我想實現的是 1.默認情況下,該網格是空的。 2.當用戶點擊搜索按鈕時,它將使用AJAX加載數據。 3.數據將加載到網格中。

從附件,我有這樣的錯誤

  1. 網格寬度不是100%PX,它是兩個小
  2. 尋呼機被顯示不出來。如何使用方法來控制傳呼機?

如何解決?有任何樣品?

感謝

screenshot

<h2>Search</h2> 
<form id="project_search_form"> 
<table class="grid"> 
... 
    <tr>   
     <td><a class="form_button" onclick="searchProject();" href="#">search</a></td> 
    </tr> 
</table> 
</form> 


<table id="projectList"></table> 
<div id="projectPager"></div> 

<script type="text/javascript"> 

$(document).ready(function(){ 

    jQuery("#projectList").jqGrid({ 
     url:'server.php?q=2', 
     datatype: "json", 
     colNames:['ID','Name'], 
     colModel:[ {name:'projectId',index:'id', width:55} , {name:'name',index:'name', width:55}], 
     rowNum:10, 
     rowList:[10,20,30], 
     pager: '#pager5', 
     sortname: 'id', 
     viewrecords: true, 
     sortorder: "desc", 
     caption:"Simple data manipulation", 
     editurl:"someurl.php" }).navGrid("#projectPager",{edit:false,add:false,del:false}); 
}); 

function searchProject(){ 
    var param = $('#project_search_form').serialize(); 
    BaseAjaxUtil.object_search(param, 
       { 
       callback:function(data){       
        var jsongridRows = eval("("+data+")"); 

        for(var i = 0; i < jsongridRows.length; i++) { 
         var datarow = jsongridRows[i];  
         var su=jQuery("#projectList").jqGrid('addRowData',i+1, datarow); 
         // if(su) alert("Succes. Write custom code to add data in server"); else alert("Can not update"); 
        } 

       }, 
       errorHandler:function(errorString) { alert("error:"+errorString); }    
       } 
      );   
} 
</script> 
+2

注意:您引用ID#pager5作爲將包含尋呼機的元素,但您的HTML標記不包含ID爲pager5的元素。還有很多例子在這裏http://www.trirand.com/blog/jqgrid/jqgrid.html –

+0

是的,你是對的。那麼如何控制其寬度? – user595234

回答

0

可以使用autowidth: true選項來控制寬度。來自jqGrid docs

設置爲true時,網格寬度自動重新計算爲父元素的寬度。這隻在網格創建時纔開始。爲了在父元素更改寬度時調整網格大小,您應該應用自定義代碼併爲此使用setGridWidth方法

然後您只需確保您的父元素具有適當的寬度。