2013-12-11 3 views
0

Моя Аякса функция JQGrid возвращает этот кусок XML:Почему этот 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>[email protected]</cell> 
     <cell>8325731944</cell> 
     <cell>[email protected]</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>[email protected]</cell> 
     <cell>8326380419</cell> 
     <cell>[email protected]</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» в них, сетка отобразит все остальное правильно.
Почему? И как я могу получить его для отображения элементов выбора?

+0

Возможный дубликат [является атрибутом xml без значения действительным?] (Http://stackoverflow.com/questions/6926442/is-an-xml-attribute-without-value-valid) –

+0

Не совсем. Я хотел бы узнать, как отображать отдельные элементы внутри сетки. – jzeus

+0

Моей точкой был ваш xml недействителен. Сделайте его действительным, и он должен начать работать. –

ответ

1

я должен был сделать sneakiest вещи:
Заменены все символы «<» и «>» внутри ячеек сетки с помощью некоторого множества другого характера (например, HTML-код) для предотвращения теги будучи лишен jqGrid.
Затем использовала пользовательскую функцию форматирования, чтобы вернуть значение с замененными html-кодами фактическими символами.
Woot?

0

У вас есть грамматически неожиданный символ '>' на '' выбранного атрибута

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

должен быть указан. Например:

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

+0

Действительно, это была проблема, но теперь вместо элемента Select я получаю все значения параметров в строке: «Cypress FallsCypress Ridge ...» – jzeus

+0

Я не уверен, но, возможно, это ответ http: // stackoverflow.com/questions/4739715/jqgrid-select-box-in-a-cell –

0

Я не хочу, чтобы обсудить, почему вы, что размещать фрагменты HTML как часть данных XML. Я хочу просто ответить, как исправить данные, чтобы их можно было отображать в сетке.

лично я бы рекомендовал использовать

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

вместо

<option selected>Unverified</option> 

Тем не менее, это не реальная ошибка в коде XML. Что вам действительно нужно сделать, это использовать CDATA для <cell> содержимого, если данные содержат HTML-фрагменты:

<?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>[email protected]</cell> 
     <cell>8325731944</cell> 
     <cell>[email protected]</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>[email protected]</cell> 
     <cell>8326380419</cell> 
     <cell>[email protected]</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

Смежные вопросы