0

我试图在 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 脚本位传递到信息窗口,但这样的代码使谷歌地图无法显示。

知道如何使它工作吗?

问候,卡洛斯。

4

1 回答 1

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> ???

我建议您另外做的是先调试网格而不动态创建代码。我的意思是,您也可以像通常那样创建静态创建 jqGrid。 <div class="infowin"><table id="list1"></table><div id="pager1"></div></div>只有在代码工作后,您才能包含一行代码,网格移动到infoWindow其中infoWindow.setContent

infoWindow.setContent($("#list1").closest(".infowin")[0]); // move div over grid
于 2012-10-29T15:22:59.187 回答