使用jQuery对象作为jqGrid的数据源

时间:2012-05-15 20:05:09

标签: jquery jqgrid

我正在尝试使用XML字符串中的jQuery选择结果创建jqGrid。

我有一个加载大型XML响应(SOAP)的页面。我想保存初始响应并在不同的jqGrid表中动态使用部分响应。当我使用jQuery搜索XML的一部分时,我得到了表的响应的正确部分,但我仍然坚持从jQuery结果对象构建表。下面的loatTabTrip函数适用于作为travelXml参数给出的原始XML字符串,但它不适用于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 个答案:

答案 0 :(得分:1)

您可以使用jQuery .get方法检索底层DOM元素 - 或者在本例中是XML元素。

从那里,您可以使用Convert xml to string with jQuery中的函数将该XML对象转换为字符串:

datastr: xmlToString( travelXml.get(0) )

这有帮助吗?