我使用的jqGrid 4.4.5使用jQuery 1.9.1,並在服務器端,我使用ASP.NET MVC 4(雖然我不認爲這是部分的問題)。亞格數據的jqGrid不顯示4.4.5
我有一個簡單的jqGrid做工精細,而且我想一個簡單的分格添加到它。我已經配置了子網格,將它連接回服務器端的單獨控制器,並且一切看起來都很好,直到我需要顯示子網格數據爲止。
初始網格負載調用我的控制器的主要數據的方法,得到JSON和顯示的行。單擊+符號將展開一行,導致回撥到控制器的輔助數據方法。次要方法將子網格數據作爲有效的json返回(我使用Google Chrome開發工具對其進行了驗證)。子網格展開並顯示正確的行數和正確的標題,但值不出現在單元格中。
我已經通過了在線文檔和各種建議,在這裏,但似乎沒有奏效。我在jsonReader配置上玩了很多,但似乎沒有幫助(如果我將repeatitems設置爲true,它根本不起作用)。將gridview從真到假似乎也沒有幫助。
任何幫助表示讚賞。
這是對分格的控制器方法制成的實際調用:
/Schedule/SubGridData?nd_=1365975664423&id=1002200&InspectionScheduleId=1002200&ItemTypeId=1000003
這是數據谷歌瀏覽器的權利要求是由調用返回:
{"rows":[{"cell":["Tony\u0027s HomeBrew","Icky Beer"]},{"cell":["Tony\u0027s WorkBrew","Tasty Beer"]}]}
這是網格配置:
財產<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('#GridDataBasic').jqGrid({
autoencode:true,
autowidth:true,
caption:'Inspection Schedule',
datatype:'json',
jsonReader:{ repeatitems:false, id: 'InspectionScheduleId', subgrid: { root: 'rows', repeatitems: false, cell: 'cell', id: 'id' } },
emptyrecords:'No record Found',
gridview:false,
height:'100%',
loadui:'block',
pager:'#pager',
rowList:[10,15,20,50],
rowNum:10,
rowattr: function(rowData) {var dueDate = new Date(parseInt(rowData.DueDate.substr(6)));var nowDate = new Date();var colorDate = new Date(dueDate - (rowData.RedOffsetInMinutes * 60000));if (nowDate > colorDate) { return {'class': 'redOffsetColor'}; }colorDate = new Date(dueDate - (rowData.OrangeOffsetInMinutes * 60000));if (nowDate > colorDate) { return {'class': 'orangeOffsetColor'}; }colorDate = new Date(dueDate - (rowData.YellowOffsetInMinutes * 60000));if (nowDate > colorDate) { return {'class': 'yellowOffsetColor'}; }colorDate = new Date(dueDate - (rowData.GreenOffsetInMinutes * 60000));if (nowDate > colorDate) { return {'class': 'greenOffsetColor'}; }},
viewsortcols:[true,'vertical',true],
shrinkToFit:true,
url:'/Schedule/IndexGridData',
viewrecords:true,
subGrid: true,
subGridUrl : '/Schedule/SubGridData',
subGridModel : [ {
name : [ 'Item Name','Item Description' ],
width : [ 50,50 ],
align : [ 'left','left' ],
params : [ 'InspectionScheduleId','ItemTypeId' ]
} ],
colModel: [
{
name:'InspectionScheduleId',
hidden:true,
key:true,
label:'InspectionScheduleId',
sortable:false,
index:'InspectionScheduleId'
},{
name:'ItemTypeId',
hidden:true,
label:'ItemTypeId',
sortable:false,
index:'ItemTypeId'
},{
name:'GreenOffsetInMinutes',
hidden:true,
label:'GreenOffsetInMinutes',
sortable:false,
index:'GreenOffsetInMinutes'
},{
name:'YellowOffsetInMinutes',
hidden:true,
label:'YellowOffsetInMinutes',
sortable:false,
index:'YellowOffsetInMinutes'
},{
name:'OrangeOffsetInMinutes',
hidden:true,
label:'OrangeOffsetInMinutes',
sortable:false,
index:'OrangeOffsetInMinutes'
},{
name:'RedOffsetInMinutes',
hidden:true,
label:'RedOffsetInMinutes',
sortable:false,
index:'RedOffsetInMinutes'
},{
name:'ItemTypeName',
label:'Item Type',
sortable:false,
index:'ItemTypeName'
},{
align:'center',
name:'DueDate',
formatter:'date', formatoptions: {srcformat:'ISO8601Long', newformat:'m/d/Y H:i:s'},
label:'Due Date',
sortable:true,
index:'DueDate'
}
]
});
});
</script>
所以,這是它正是* * - 謝謝。主電網和子電網的重複值都是一樣的。主電網失敗,但子電網失敗。 – Tony
@Tony:不客氣!我很高興,我可以幫助你。在回答關於'jsonReader'的問題時,我很喜歡它的使用是newcommer許多錯誤的來源。我發佈了trirand建議來實現JSON格式的自動檢測。這些建議現在是jqGrid的一部分。我會查看子網格的代碼來實現它。如果你使用jqGrid 4.4.5,你可以嘗試刪除完整的'jsonReader'。 'loadonce:true'的使用有一個錯誤,但是你不使用它。所以我認爲如果你只是刪除'jsonReader',你的網格將被成功填充。 – Oleg
如果我刪除jsonReader,但是,我將如何告訴jqGrid我的哪些列表示唯一的行ID?我不希望jqGrid使用任意值並將其傳遞給我將來的任何定製。 – Tony