EXT JS преобразующий буквенно-цифровые символы - PullRequest
0 голосов
/ 27 февраля 2012

Привет! У меня есть таблица данных ext js, которая используется для сортировки и фильтрации, которая работает нормально, но пользователь обнаружил ошибку, и я не могу понять, что это такое?

один из itemID (продукты) выглядит следующим образом = 98694E130, но отображается как 986940000000000.

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

Заранее спасибо

код как показано ниже:

...

var material_colModel = new Ext.grid.ColumnModel([
        {header: "#JSStringFormat(lang_rb.material)#",                  width: 75,  sortable: true,                 dataIndex: "MATERIAL",                  filter: {}},
        {header: "#JSStringFormat(lang_rb.materialDescription)#",       width: 200, sortable: true,                 dataIndex: 'MATERIALDESCRIPTION',       filter: {}},
        {header: "#JSStringFormat(lang_rb.EANcode)#",                   width: 100, sortable: true,                 dataIndex: 'EANCODE',                   filter: {}},
        {header: "#JSStringFormat(lang_rb.SKU)#",                       width: 60,  sortable: true,                 dataIndex: 'SKU',                       filter: {}},
        {header: "#JSStringFormat(lang_rb.UPC)#",                       width: 50,  sortable: false,                dataIndex: 'UNITSPERCARTON',                    align: 'right', css: 'background-color: ##f9f9f9;'},
        {header: "#JSStringFormat(lang_rb.price)# (#currencySymbol#)",  width: 50,  sortable: false,                dataIndex: 'UNITPRICE',                         align: 'right', renderer: fmtValue, css: 'background-color: ##f9f9f9;'},
        {header: "#JSStringFormat(lang_rb.productClassificationCode)#", width: 50,  sortable: true, hidden: false,  dataIndex: 'PRODUCTCLASSIFICATIONCODE', filter: {}},
        {header: "#JSStringFormat(lang_rb.productClassification)#",     width: 175, sortable: true, hidden: false,  dataIndex: 'PRODUCTCLASSIFICATIONDESC', filter: {}},
        {header: "#JSStringFormat(lang_rb.superCategoryCode)#",         width: 50,  sortable: true, hidden: false,  dataIndex: 'SUPERCATEGORYCODE',         filter: {}},
        {header: "#JSStringFormat(lang_rb.superCategory)#",             width: 175, sortable: true, hidden: false,  dataIndex: 'SUPERCATEGORYDESC',         filter: {}},
        {header: "#JSStringFormat(lang_rb.categoryCode)#",              width: 50,  sortable: true, hidden: false,  dataIndex: 'CATEGORYCODE',              filter: {}},
        {header: "#JSStringFormat(lang_rb.category)#",                  width: 175, sortable: true, hidden: false,  dataIndex: 'CATEGORYDESC',              filter: {}},
        {header: "#JSStringFormat(lang_rb.internalClassificationCode)#",width: 50,  sortable: true, hidden: false,  dataIndex: 'INTERNALCLASSIFICATIONCODE', filter: {}},
        {header: "#JSStringFormat(lang_rb.internalClassification)#",    width: 175, sortable: true, hidden: false,  dataIndex: 'INTERNALCLASSIFICATIONDESC', filter: {}},
        {header: "#JSStringFormat(lang_rb.brandCode)#",                 width: 50,  sortable: true, hidden: false,  dataIndex: 'BRANDCODE',                 filter: {}},
        {header: "#JSStringFormat(lang_rb.brand)#",                     width: 125, sortable: true, hidden: false,  dataIndex: 'BRANDDESC',                 filter: {}},
        {header: "#JSStringFormat(lang_rb.familyBrandCode)#",           width: 50,  sortable: true, hidden: false,  dataIndex: 'FAMILYBRANDCODE',           filter: {}},
        {header: "#JSStringFormat(lang_rb.familyBrand)#",               width: 175, sortable: true, hidden: false,  dataIndex: 'FAMILYBRANDDESC',           filter: {}},
        {header: "#JSStringFormat(lang_rb.licensorCode)#",              width: 50,  sortable: true, hidden: false,  dataIndex: 'LICENSORCODE',              filter: {}},
        {header: "#JSStringFormat(lang_rb.licensor)#",                  width: 175, sortable: true, hidden: false,  dataIndex: 'LICENSORDESC',              filter: {}},
        {header: "#JSStringFormat(lang_rb.propertyCode)#",              width: 50,  sortable: true, hidden: false,  dataIndex: 'PROPERTYCODE',              filter: {}},
        {header: "#JSStringFormat(lang_rb.property)#",                  width: 175, sortable: true, hidden: false,  dataIndex: 'PROPERTYDESC',              filter: {}}
     ]);

    var myCFReader =  new Ext.data.JsonReader({
        idProperty: 'MATERIAL',
        root: 'ROWS',
        successProperty:'SUCCESS',      // CF returns Json variable names in uppercase
        messageProperty: 'MESSAGE',
        totalProperty: 'RECORDCOUNT',


    // the fields config option will internally create an Ext.data.Record
    // constructor that provides mapping for reading the record data objects
    fields: [
    {name: 'MATERIAL',                      type:'string'},
    {name: 'MATERIALDESCRIPTION',           type:'string'},
    {name: 'EANCODE',                       type:'string'},
    {name: 'SKU',                           type:'string'},
    {name: 'UNITSPERCARTON',                type:'int'},
    {name: 'UNITPRICE',                     type:'float'},
    {name: 'PRODUCTCLASSIFICATIONCODE',     type:'string'},
    {name: 'PRODUCTCLASSIFICATIONDESC',     type:'string'},
    {name: 'SUPERCATEGORYCODE',             type:'string'},
    {name: 'SUPERCATEGORYDESC',             type:'string'},
    {name: 'CATEGORYCODE',                  type:'string'},
    {name: 'CATEGORYDESC',                  type:'string'},
    {name: 'INTERNALCLASSIFICATIONCODE',    type:'string'},
    {name: 'INTERNALCLASSIFICATIONDESC',    type:'string'},
    {name: 'BRANDCODE',                     type:'string'},
    {name: 'BRANDDESC',                     type:'string'},
    {name: 'FAMILYBRANDCODE',               type:'string'},
    {name: 'FAMILYBRANDDESC',               type:'string'},
    {name: 'LICENSORCODE',                  type:'string'},
    {name: 'LICENSORDESC',                  type:'string'},
    {name: 'PROPERTYCODE',                  type:'string'},
    {name: 'PROPERTYDESC',                  type:'string'}      ]
});

//The Proxy object will specify URLs to call for different CRUD operations
var proxy = new Ext.data.HttpProxy({
    method:'POST',                
    api:{
        read:   'remote/stsRemote.cfc?method=readMaterialMasterJson'
    }
});

...

извините, если форматирование выглядит некорректно

Ответы [ 2 ]

0 голосов
/ 27 февраля 2012

Если returnType вашей функции имеет значение «struct» и вы используете в функции атрибут «returnFormat = JSON», вы можете попробовать это:

Измените тип возвращаемого значения на «string», returnFormat на «plain», а затем cfreturn SerializeJSON (struckObj)

Я обнаружил, что это иногда решает подобные проблемы.

0 голосов
/ 27 февраля 2012

Это потому, что JavaScript интерпретирует 98694E130 как 98694*10^130.Это называется «научная запись».Чтобы избежать этого, убедитесь, что ваше значение является строкой и никогда не будет принудительно приведено к целому числу (или любому числовому типу)

Из ваших комментариев кажется, что в вашем JSON, возвращенном с сервера, значение 98694E130 для MATERIAL столбец не заключен в кавычки, и, следовательно, JavaScript интерпретирует его как число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...