我正在尝试在Google地图的InfoWindow中使用jqGrid但不知何故我无法使其正常工作。
我有以下代码:
function infoClosure(map, marker, val) {
return function() {
content = [];
content.push('<div class="infowin">');
content.push('<table id="list1"></table>');
content.push('<div id="pager1"></div>');
content.push('<script type="text/javascript">');
content.push('jQuery("#list1").jqGrid({');
content.push('url:"getdata.php?lat=' + val.lat + '&long=' + val.long + '",');
content.push('datatype: "xml",');
content.push('colNames:["Project id","Project name"],');
content.push('colModel:[');
content.push('{name:"projectID",index:"projectID", width:75}');
content.push('],');
content.push('rowNum:10,');
content.push('autowidth: true,');
content.push('rowList:[10,20,30],');
content.push('pager: "#pager1",');
content.push('sortname: "id",');
content.push('viewrecords: true,');
content.push('sortorder: "desc",');
content.push('caption:"Current projects"');
content.push('});');
content.push('jQuery("#list1").jqGrid("navGrid","#pager1",{edit:false,add:false,del:false});');
content.push('</script>');
infoWindow.setContent(content.join(''));
infoWindow.open(map, marker);
}
}
我们正在使用content.push
将jqGrid的java脚本位传递到信息窗口,但是这样的代码使google地图无法显示。
知道如何让它发挥作用吗?
此致 卡洛斯。
答案 0 :(得分:1)
我错过了代码colModel
中第二列(“项目名称”)的定义。此外,您有sortname: "id"
而不是sortname: "projectID"
。我建议您另外添加gridview: true
选项。
下一个问题是<div class="infowin">
将不会关闭。您使用的HTML片段是
<div class="infowin">
<table id="list1"></table>
<div id="pager1"></div>
??? where is </div> ???
我建议你另外做的是首先调试网格,而不用动态创建代码。我的意思是你可以创建静态 <div class="infowin"><table id="list1"></table><div id="pager1"></div></div>
创建jqGrid,就像通常一样。只有在代码生效后,您才能在infoWindow
内包含一行移动 infoWindow.setContent
内的网格代码:
infoWindow.setContent($("#list1").closest(".infowin")[0]); // move div over grid