2011-05-20 40 views
10

Tôi có cột lưới:cách thoát khỏi các thực thể html trong lưới?

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

Làm thế nào để thoát khỏi thực thể html chỉ trong chức năng renderer cho cột này?

Trả lời

2

Có thuộc tính autoEncode trên EditorGridPanel.

"Đúng với giá trị mã hóa và giải mã HTML tự động trước và sau chỉnh sửa (mặc định là sai)."

Chỉ cần đặt thành đúng.

autoEncode: true 
12

Các renderer tài sản của một định nghĩa cột có thể mất hoặc là một hàm hay tên chuỗi của một trong những phương pháp Ext.util.Format của. Trong trường hợp này bạn có thể sử dụng htmlEncode phương pháp bằng cách tuyên bố cột như:

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

tôi đã phải sử dụng 'renderer: Ext.util.Format.htmlFormat' (chứ không phải là một chuỗi; trong Ext3). –

+0

Không thể tìm thấy bất kỳ thuộc tính được đặt tên như vậy. Bạn có thể vui lòng giúp đỡ để xác định nơi tôi nên áp dụng 'htmlEncode' này? –

+0

Cảm ơn người đàn ông này đã tiết kiệm rất nhiều thời gian của tôi. – quintin

1

hi viết mã này trong app.js tập tin // mã cho lưới XSS

Ext.override(Ext.grid.column.Column, { 
defaultRenderer: Ext.util.Format.htmlEncode 
}); 
Các vấn đề liên quan