【发布时间】:2013-04-30 09:23:11
【问题描述】:
你好,谁能告诉我包含子网格值的本地数据的 json 格式。 我使用了以下格式,但子网格数据没有加载到子网格表中。
var data=[{"Left_ssr_id":CaGM33098,"Mismatches":"6","Gaps":"1","AlignLen":"1119","Identity":"99.37","right_ssr_start":17308507,"Qstart":"33","query":"AB-Contig743","subject":"Ca7","Send":"17305359","Score":"2113","Evalue":"0.0","Left_ssr_end":17293825,"right_ssr_end":17308542,"right_ssr_id":CaGM33099 ,"Sstart":"17304241","Qend":"1150","Left_ssr_start":17293811,subgrid:[{"Right_ssr_start":17308507,"Right_ssr_end":17308542},{"Right_ssr_start":17308506,"Right_ssr_end":17308543}]}]
用于上传数据的代码。网格正在获取数据,但子网格仅显示标题和空白行。
$(document).ready(function(){
$("#blastform").submit(function(){
jQuery.ajax({
data: $(this).serialize(),
url: this.action,
type: this.method,
dataType: "json",
error: function() {
$(thistarget).html("<span class='error'>Failed to submit form!</span>");
},
success: function(res) {
var data=res;
$("#datatable").jqGrid({
datatype:"local",
data:data,
colNames:['QueryID','SubjectID', . . . 'Right_nearest_distance'],
colModel:[ {name:'query',index:'query', width:55},
{name:'subject',index:'subject', width:80},
.,
.,
{name:'right_near_dist',index:'right_near_dist', width:50, sortable:false}, ],
rowNum:100,
rowList:[100,200,500],
pager: $('#pager2'),
sortname: 'QueryID',
viewrecords: true,
sortorder: 'desc',
loadonce: true,
altRows: true,
pgbuttons: true,
subGrid : true,
subGridUrl: 'local',
subGridRowExpanded: function(subgrid_id, row_id)
{
var subgrid_table_id, pager_id;
subgrid_table_id = subgrid_id+"_t";
pager_id = "p_"+subgrid_table_id;
$("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
jQuery("#"+subgrid_table_id).jqGrid({
datatype: "local",
colNames: ['ssr_start','ssr_end'],
colModel: [ {name:"Right_ssr_start",index:"Right_ssr_start",width:80,key:true},
{name:"Right_ssr_end",index:"Right_ssr_end",width:130},
],
rowNum:20,
pager: pager_id,
sortname: 'ssr_start',
sortorder: "asc",
height: '100%' });
jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:false,add:false,del:false}) },
caption: 'Blast Results'
});
$("#datatable").jqGrid('navGrid','#pager2', {position: 'right'});
jQuery("#datatable").jqGrid('navGrid','#blastresults',{edit:false,add:false,del:false});
}
})
return false;
}
);
);
【问题讨论】:
-
了解如何为 jqGrid 提供数据非常重要。您是否将
datatype: "local"与data: data一起使用?colModel中如何定义网格列?哪个数据字段是唯一的,因此可以用作rowid?如果您使用数据发布了来自服务器的响应(如果您使用datatype: "json"),那么您应该使用其他 jqGrid 选项。所以你应该在你的问题上附加更多信息。 -
@Oleg: 我提供了我用来为 jqgrid 提供数据的脚本。
-
单独的ajax调用和使用
datatype: "local", data: data是错误的。你会有很多缺点。 jqGrid 为案例提供datatype: "json"类型。可以使用jsonReader和jsonmap等附加选项来告知jqGrid 如何从服务器响应中获取有关网格数据的信息。您的主要问题是关于子网格,但代码没有显示您如何填充子网格。我将参考另一个可能对您有所帮助的老问题写简短的答案。 -
@oleg:实际上我的脚本没有工作,所以我实现了 Ajax 调用,然后我使用了数据类型:“本地”。现在 jqgrid 工作正常,没有错误。谢谢您,我正在等待您的回复。