为什么不显示此xml?

时间:2013-12-11 16:49:03

标签: jquery xml jqgrid

我的JQGrid的ajax函数返回这段xml:

<?xml version='1.0' encoding='utf-8' ?>
<rows>
    <row id='1'>
        <cell>Darren Sadr</cell>
        <cell>12345678</cell>
        <cell>01/12/1995</cell>
        <cell>
            <select>
                <option value='1' selected>Cypress Falls</option>
                <option value='2'>Cypress Lakes</option>
                <option value='3'>Cypress Ridge</option>
                <option value='4'>Cypress Fair</option>
                <option value='0'>None</option>
            </select>
        </cell>
        <cell>8325731944</cell>
        <cell>darrensadr@gmail.com</cell>
        <cell>8325731944</cell>
        <cell>darrensadr@gmail.com</cell>
        <cell>12/09/2013</cell>
        <cell>12/09/2014</cell>
        <cell>
            <select>
                <option selected>Unverified</option>
                <option>OK</option>
                <option>NoShow</option>
                <option>Archived</option>
            </select>
        </cell>
        <cell>false</cell>
        <cell>0</cell>
        <cell>0</cell>
    </row>
    <row id='2'>
        <cell>Darren Vortex</cell>
        <cell>87654321</cell>
        <cell>12/01/1995</cell>
        <cell>
            <select>
                <option value='1' selected>Cypress Falls</option>
                <option value='2'>Cypress Lakes</option>
                <option value='3'>Cypress Ridge</option>
                <option value='4'>Cypress Fair</option>
                <option value='0'>None</option>
            </select>
        </cell>
        <cell>8326380419</cell>
        <cell>darrenvortex@gmail.com</cell>
        <cell>8326380419</cell>
        <cell>darrenvortex@gmail.com</cell>
        <cell>12/09/2013</cell>
        <cell>12/09/2014</cell>
        <cell>
            <select>
                <option selected>Unverified</option>
                <option>OK</option>
                <option>NoShow</option>
                <option>Archived</option>
            </select>
        </cell>
        <cell>false</cell>
        <cell>0</cell>
        <cell>0</cell>
    </row>
</rows>

但是,网格不显示任何内容。
如果我删除了包含'select'元素的单元格,则网格会正确显示其他所有内容 这是为什么?我怎样才能让它显示选择元素?

3 个答案:

答案 0 :(得分:1)

我不得不做最偷偷摸摸的事情:
用一些其他字符集(例如HTML代码)替换网格单元格内的所有“<”和“>”字符,以防止标记被jqGrid剥离。
然后使用自定义格式化函数返回值,并将html代码替换为实际字符 活泉?

答案 1 :(得分:0)

你有语法上意想不到的字符'&gt;'在

<option value='1' selected>Cypress Falls</option>.

应指定

'selected'属性。例如:

<option value='1' selected='true'>Cypress Falls</option>.

答案 2 :(得分:0)

我不想讨论为什么要将HTML片段作为XML数据的一部分放置。我想回答如何修复数据,以便可以在网格中显示。

我个人会建议你使用

<option selected='selected'>Unverified</option>

而不是

<option selected>Unverified</option>

然而,这不是XML代码中的真正错误。如果数据包含HTML片段,您真正需要对<cell>内容使用CDATA

<?xml version='1.0' encoding='utf-8' ?>
<rows>
    <row id='1'>
        <cell>Darren Sadr</cell>
        <cell>12345678</cell>
        <cell>01/12/1995</cell>
        <cell>
            <![CDATA[<select>
                <option value='1' selected='selected'>Cypress Falls</option>
                <option value='2'>Cypress Lakes</option>
                <option value='3'>Cypress Ridge</option>
                <option value='4'>Cypress Fair</option>
                <option value='0'>None</option>
            </select>]]>
        </cell>
        <cell>8325731944</cell>
        <cell>darrensadr@gmail.com</cell>
        <cell>8325731944</cell>
        <cell>darrensadr@gmail.com</cell>
        <cell>12/09/2013</cell>
        <cell>12/09/2014</cell>
        <cell>
            <![CDATA[<select>
                <option selected='selected'>Unverified</option>
                <option>OK</option>
                <option>NoShow</option>
                <option>Archived</option>
            </select>]]>
        </cell>
        <cell>false</cell>
        <cell>0</cell>
        <cell>0</cell>
    </row>
    <row id='2'>
        <cell>Darren Vortex</cell>
        <cell>87654321</cell>
        <cell>12/01/1995</cell>
        <cell>
            <![CDATA[<select>
                <option value='1' selected='selected'>Cypress Falls</option>
                <option value='2'>Cypress Lakes</option>
                <option value='3'>Cypress Ridge</option>
                <option value='4'>Cypress Fair</option>
                <option value='0'>None</option>
            </select>]]>
        </cell>
        <cell>8326380419</cell>
        <cell>darrenvortex@gmail.com</cell>
        <cell>8326380419</cell>
        <cell>darrenvortex@gmail.com</cell>
        <cell>12/09/2013</cell>
        <cell>12/09/2014</cell>
        <cell>
            <![CDATA[<select>
                <option selected='selected'>Unverified</option>
                <option>OK</option>
                <option>NoShow</option>
                <option>Archived</option>
            </select>
        ]]></cell>
        <cell>false</cell>
        <cell>0</cell>
        <cell>0</cell>
    </row>
</rows>

经过这样的更改后,jqGrid应该能够显示数据。见the demo。它显示

enter image description here