谷歌中的jqGrid映射InfoWindow?

时间:2012-10-29 14:22:28

标签: javascript google-maps jqgrid

我正在尝试在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地图无法显示。

知道如何让它发挥作用吗?

此致 卡洛斯。

1 个答案:

答案 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