Firefox выдает ошибку в extjs 2.2 JsonStore - PullRequest
0 голосов
/ 11 мая 2011

У меня возникла проблема, когда определенные значения, возвращаемые сервером, выдают «код 12» в firebug и вызывают плавающее сообщение «Загрузка» в extjs, которое никогда не исчезает, казалось бы, висящий на моей странице. Эта проблема возникает только в Firefox. Я обнаружил, что могу последовательно воспроизвести проблему, поместив «&» в одно из значений, которое входит в GridPanel, но другие значения, такие как форматирование с расширенным текстом, иногда также выдают код 12. Я обнаружил, что если я захожу на страницу в опере, я могу исправить данные на панели сетки и сохранить их на сервере. Затем, обновляя страницу Firefox, все возвращается на круги своя. Есть ли какой-то разделитель или что-то такое, что я могу поставить вокруг этих значений, чтобы это не происходило? Я extjs могу позволить мне сохранить что-то на сервере, я не понимаю, как получить его обратно вызывает проблемы.

В клопе:

An invalid or illegal string was specified" code: "12
[Break On This Error] (function(){var D=Ext.lib.Dom;var E=Ex...El.cache;delete El._flyweights})})(); 

Пример JSON, возвращенный с сервера (обратите внимание, что «200 & 5» вызывает ошибку, «200 и 5» будет работать нормально)

{"summaryList":[{"shot":"","seq":"200 & 5","active":9998,"tag":"","file":"","id":"137943329348950905822686689581598049837","quick_comments":"","comments":"","priority":"","asset":"","prod":"dragon","type":"","store":"","submitby":"jstratton","status":"ip","format":"","date":"2011_5_10","approval":"hofx_pm","name":"jstratton","notes":"","uri":"137943329348950905822686689581598049837","dept":"fx","time":"10 May 2011 13:56:30","order":2}], "success":true}

Магазин JSON и GridPanel

var summaryStore = new Ext.data.JsonStore({
    url: 'summaryList',
    root: 'summaryList',
    baseParams :    {
        show: showSelect.getValue(),
        dept: deptSelect.getValue(),
        approval: typeSelect.getValue(),
        roundDate: roundDateField.getValue(),
        user: summaryUser.getValue(),
    },
    autoLoad: true,
    fields: [],
});

var summaryGrid = new Ext.grid.GridPanel({
    store: summaryStore,
    columns : [],
    // turn off multi-selection for now
    tbar : [activeButton,
            removeButton,
            ' ',
            exportToSpreadsheetButton,
            refreshButton,
        ],
    renderTo: 'summaryTab',
    autoHeight: true,
    loadMask: {msg: 'Loading information. Thank you for your patience.'},
    autoExpandColumn: 'comments',
    autoSizeColumns: true,
    ddGroup: 'summaryGridDD',
    enableDragDrop: true,
    viewConfig: {
        forceFit: true,
    },
    titleCollapse : true,
    collapsed: false,
    stripeRows: true,
    title: 'Summary',
    frame: true,
});

1 Ответ

0 голосов
/ 11 мая 2011

Ваше '&' помещается прямо в HTML, вам нужно, чтобы HTML экранировал ваш контент.

...