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.pushjqGrid の Java スクリプト ビットを情報ウィンドウに渡すために使用していますが、そのようなコードは Google マップを非表示にします。

それを機能させる方法はありますか?

よろしく、カルロス。

4

1 に答える 1

1

colModelコードの 2 列目 (「プロジェクト名」) の定義がありません。さらに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>create jqGrid も通常と同じ方法で作成できます。コードが機能した後でのみ、 に関してグリッドを の内部に移動する1 行のコードを含めることができます。infoWindowinfoWindow.setContent

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