как избежать html-объектов в grid?

#extjs

#extjs

Вопрос:

У меня есть столбец grid:

 {
    header: "",
    sortable: false,
    id: 'value',
    dataIndex: 'value',
    hidden: false,
    editor: {
        xtype: 'textfield',
        allowBlank: false
    }
}
  

Как избежать html-объектов только в функции визуализации для этого столбца?

Ответ №1:

Свойство renderer определения столбца может принимать либо функцию, либо строковое имя одного из Ext.util.Методы Format. В этом случае вы можете использовать метод HtmlEncode, объявив столбец как:

 {
    header: "",
    sortable: false,
    id: 'value',
    dataIndex: 'value',
    hidden: false,
    editor: {
        xtype: 'textfield',
        allowBlank: false
    },
    renderer: 'htmlEncode'
}
  

Комментарии:

1. Мне пришлось использовать renderer: Ext.util.Format.htmlFormat (вместо строки; в Ext3).

2. Не удалось найти ни одного такого именованного свойства. Не могли бы вы, пожалуйста, помочь определить, где мне следует это применить htmlEncode ?

Ответ №2:

На панели EditorGridPanel есть свойство autoEncode.

«Значение True для автоматического кодирования и декодирования значений HTML до и после редактирования (по умолчанию равно false)».

Просто установите для него значение true.

 autoEncode: true
  

Ответ №3:

привет, напишите этот код в app.js файл //код для grid xss

 Ext.override(Ext.grid.column.Column, {
defaultRenderer: Ext.util.Format.htmlEncode
});