2010-07-22 2 views
0

Google지도의 지역 검색을 사용하여 특정 주소 지역의 업체를 찾습니다. 결과가 인터셉트되고 JQGrid 테이블에 표시되어야합니다. JQGrid의 "배열 데이터"를 사용하여 결과를 그리드에 로컬로 삽입하고 싶습니다. 검색이 완료되고 onSearchCompleteCallback 기능은 내가 불을 지르고에서이 오류가 호출되면JQGrid 배열 데이터 문제 - clientSide

 <script type="text/javascript"> 
     var map = null; 
    var geocoder = null; 

    function initialize() { 
     /* Initialize Google Maps */ 
     if (GBrowserIsCompatible()) { 
     map = new GMap2(document.getElementById("map")); 
     map.setCenter(new GLatLng(50.786916, 6.101360), 16); 
     //map.setUIToDefault(); 
     var customUI = map.getDefaultUI(); 
       customUI.controls.scalecontrol = false; 
       map.setUI(customUI); 
     var options = { 
      onSearchCompleteCallback:function(searcher){ 
       var resultcontent = ''; 
       if (searcher.results && searcher.results.length > 0) { 
        for (var i = 0; i < searcher.results.length; i++) { 
         var result = searcher.results[i]; 

         // Split Address-Lines into Street and No 
         var TempString = result.addressLines[0]; 
         var StreetLine = TempString.split(/\b[0-9]/); 
         // Split Address-Lines to get Zipcode 
         TempString = result.addressLines[1]; 
         var CityLine = TempString.split(/\b[^0-9]/); 

         // Construct the Data Array 
         var InputData = "{Firma:\""+result.titleNoFormatting+"\", Strasse:\""+StreetLine[0]+"\", Hausnummer:\""+StreetLine[1]+"\", Postleitzahl:\""+CityLine[0]+"\", Ort:\""+result.city+"\", Telefonnummer:\""+result.phoneNumbers[0].number+"\"}"; 
         alert(InputData); 
         // Outputs for example: {Firma:"Lukull Pizza Service GbR", Strasse:"Jülicher Straße ", Hausnummer:"6", Postleitzahl:"52070", Ort:"AACHEN", Telefonnummer:"0241 9010080"} 

         // Apply Data to Grid 
         jQuery("#ResultGrid").addRowData(i, InputData); 
        } 
       } 
      } 
     }; 
     localSearch = new google.maps.LocalSearch(options); 
     map.addControl(localSearch); 
     map.removeControl(GScaleControl); 

     geocoder = new GClientGeocoder(); 
     $("#map").hide("fast"); 
     } 
    } 
    function showAddress(address, CompleteAdd) { 
     // Gets an address from database to pinpoint the location 
     if (geocoder) { 
     geocoder.getLatLng(
      address, 
      function(point) { 
      if (!point) { 
       alert(address + " not found"); 
      } else { 
       map.setCenter(point, 16); 
       var marker = new GMarker(point); 
       map.addOverlay(marker); 
       marker.openInfoWindowHtml(CompleteAdd); 
      } 
      } 
     ); 
     } 
     $("#map").show("fast"); 
    } 
     $("#ResultGrid") 
      .jqGrid({ 
       colNames:['ID', 'Firma', 'Strasse', 'Hausnummer', 'Postleitzahl', 'Ort', 'Telefonnummer'], 
       colModel:[ 
       {name:'ID', index:'ID', width:55, editable:false, searchable:false}, 
       {name:'Nachname', index:'Nachname', width:150, editable:false, searchable:false}, 
       {name:'Strasse', index:'Strasse', width:150, editable:false, searchable:false}, 
       {name:'Hausnummer', index:'Hausnummer', width:150, editable:false, searchable:false, sorttype:'int'}, 
       {name:'Postleitzahl', index:'Postleitzahl', width:150, editable:false, searchable:false, sorttype:'int'}, 
       {name:'Ort', index:'Ort', width:150, editable:false, searchable:false}, 
       {name:'Telefonnummer', index:'Telefonnummer', width:150, editable:false, searchable:false} 
       ], 
       datatype: 'clientSide', 
       //editurl:'Edit.php', 
       height: 240, 
       multiselect: true, 
       pager:'#ResultPager' 
      }) 
      .navGrid('#ResultPager', {view:false, edit:false, add:false, del:false, search:false, refresh:false}) 
      .navButtonAdd('#ResultPager', {title:"Adresse in Addressbuch speichern", buttonicon:"ui-icon-disk", caption:"In Adressbuch speichern", onClickButton:function(){ 
       //This method should save the selected addresses to the database 
       }})     
     }); 
    </script> 
</head> 
<body onload="initialize()" onunload="GUnload()"> 
    <div class="main" align="center"> 
     <table id="MyGrid"></table> 
     <div id="pager"></div>  
     <div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-draggable ui-resizable" style="height: 150px" id="Dialog"></div> 
     <div id="map" style="width: 850px; height:450px; padding:10px; font-size: medium; color:#853805; background-color:#FFE8CF;"></div> 
     <br/> 

     <div id="ResultGrid"> 
      <div id="ResultPager"></div> 
     </div> 
    </div> 

: 나는에 대한 해결책을 찾을 수 없습니다

t.rows is undefined 
http://localhost/jQuery_Adressbuch/js/jquery.jqGrid.min.js 
Line 123 

나는 다음과 같은 코드가이 시점에서 이 문제. 누구든지이 오류에 대해 더 알고 있거나 JQGrid에서 로컬 데이터 배열을 사용하고 있습니까?

피씨 : 문제를 해결했습니다. HTML 섹션에서 표 대신 그리드 용 DIV 태그를 만들었습니다 ... 저를 매우 어리 석습니다.

답변

0

주요 오류가 매우 작고 할 아주 간단한 수를 해결 : 다음

<table id="ResultGrid"></table> 
<div id="ResultPager"></div> 
에 HTML 코드 조각

<div id="ResultGrid"> 
    <div id="ResultPager"></div> 
</div> 

을 변경해야합니다

0

jqGrid JavaScript 파일의 비 압축 버전을 포함 시키십시오. 이 오류를 생성하는 jqGrid 코드의 정확한 행을보고 게시하십시오.

또한 어떤 버전의 jqGrid를 사용하고 있습니까?

그것은 가치가 무엇인지 나는이 문제 해결하는 것입니다 의심하지만, 내가, 내 로컬 그리드 다음과 같은 옵션을 사용했을 경우

:

editurl: "clientArray", // Save to local memory (sync back up on save) 
rowNum: -1, 
loadonce: true, 
imgpath: "../css/redmond/images",