2012-05-15 51 views
1

我想創建一個jqGrid,使用從XML字符串中選擇jQuery的結果。使用jQuery對象作爲jqGrid的數據源

我有一個加載大型XML響應(SOAP)的頁面。我想保存初始響應,並在不同的jqGrid表中動態使用部分響應。當我使用jQuery搜索XML的部分時,我得到了該表的響應的正確部分,但我堅持從jQuery結果對象構建表的過程中。下面的loatTabTrip函數可以很好地處理XML參數爲travelXml的原始字符串,但它不適用於jQuery結果。 (所以,如果我可以將jQuery對象作爲一個XML字符串,那麼將工作;或者,如果jqGrid會接受該對象。)

任何想法?

<Travel> 
    <TravelKey>2010020029A</TravelKey> 
    <TravelCategoryCode>AIR</TravelCategoryCode> 
    <Trips> 
     <Trip> 
      <AircraftTrip> 
       <TripKey> 
        <TripId>50</TripId> 
        <TravelKey>2010020029A</TravelKey> 
       </TripKey> 
       <AssignedTravelTaskReferences> 
        <AssignedTravelTaskReference> 
         <TaskId>80203</TaskId> 
         <TravelKey>2010020029A</TravelKey> 
        </AssignedTravelTaskReference> 
       </AssignedTravelTaskReferences> 
       <TripTravelId>6JG79822S</TripTravelId> 
       <Aircraft> 
        <AircraftModelCode>KC135R</AircraftModelCode> 
        <SerialNumber>83104038</SerialNumber> 
       </Aircraft> 
       <Route>...</Route> 
      </AircraftTrip> 
     </Trip> 
     <Trip>...</Trip> 
</Travel> 

function loadTabTrip(travelXml){ 
    jQuery("#travelTripsTable").jqGrid({ 
     datatype:'xmlstring', 
     datastr: travelXml, 
     colNames:["ID","Aircraft"], 
     colModel:[ 
      {name:"id",index:"id", width:380, align:"right",xmlmap:">TripKey>TripId"}, 
      {name:"type",index:"type", width:80, xmlmap:">Aircraft>AircraftModelCode"} 
     ], 
     xmlReader: { 
      root : "Travel>Trips", 
      row: ">Trip>AircraftTrip", 
      repeatitems: false, 
      id: ">TripKey>TripId" 
     } 
    }); 
} 

回答

1

您可以使用jQuery的.get方法來檢索底層的DOM元素 - 或者在這種情況下,XML元素。

從那裏,你可以使用函數從Convert xml to string with jQuery到XML對象轉換成字符串:

datastr: xmlToString(travelXml.get(0)) 

這是否幫助?

+0

謝謝,賈斯汀!我嘗試過.get()和xmlToString(),但我不明白jQuery如何正確地將這兩者合在一起。 – jcadcell

相關問題