2016-03-30 20 views
1

Grid sütununun arkasına yerleştirmeden önce base64 kodlamasını base64 kodlaması uygulamanız gerekir ve sonra da bunu deşifre etmek zorundayım. Benim mağazasındaEkstralar 4.2: Belirli bir kılavuz sütununda base64 kodlaması ve kod çözme nasıl uygulanır

, senkronize önce:

böyle bir şey denedim ben çalıştığınızda

{ 
    name: 'ColumnText', 
    type: 'string', 
    convert: function (value, records) { 

     // Decoding Encoded Information 
     return atob(value); 
    } 
} 

Sorun oluşur: Benim modelin değişim yönteminde

beforesync: function(options, eOpts){ 
    // Encode string 
    options.create[0].data.ColumnText = btoa(options.create[0].data.ColumnText); 
} 

, ben bunu Row Editor eklentisini kullanarak yeni bir kayıt eklemek için, yeni bir kayıt oluşturduğumda ve POST (gönder düğmesine) denedikten sonra, yeni kayıt verileri modele göre doğrulanır ve bu satıra ulaştığında:

Yeni oluşturulan bir nesne olduğu gibi doğru bir şekilde kodlanmamış olan bir değer hatası veriyor ve veriyi mağazamın eşitleme yönteminden önce kodluyorum.

Herkes bu sorunu nasıl çözebilir? Bir keresinde kullanılan bunun için çözümün

cevap

2

Bir, modelin dönüştürme yöntemde alıyorsanız rekor nesnenin kullanımını yapmaktı.

"record.raw" tipini arayabilirsiniz. Kaydedilen/getirilen kayıtlar için, tüm xml veri dizesini içeren bir dize olacaktır. Row Editor ile oluşturduğunuz yeni oluşturulan kayıtlar için "record.raw" yazmanız bir nesne olacaktır (veri modeli nesnesiniz). Böyle bir şey:

{ 
    name: 'COM_BLOG_Text', 
    type: 'string', 
    convert: function (value, records) { 

     if(typeof records.raw.ColumnText == "undefined") 
      // This means that it is an encoded stored record 
      return atob(value); 
     else 
      // this means that it is a temporary/newly created object 
      return value; 
    } 
} 
+0

Açıklamalarınız için çok teşekkür ederim. Tam olarak aradığım şey bu. – User999922