WEB开发网
开发学院网页设计JavaScript ExtJs实践:支持返回Json格式的ComboBox 阅读

ExtJs实践:支持返回Json格式的ComboBox

 2009-09-09 00:00:00 来源:WEB开发网   
核心提示: 如果在上面的表单中输入产品Id为“1”,产品名称为“产品1”,ExtJs实践:支持返回Json格式的ComboBox(2),产品类别选择“产品分类一”,点击保存按钮,能够被完整地反序列化成一个Product的json字符串应

如果在上面的表单中输入产品Id为“1”,产品名称为“产品1”,产品类别选择“产品分类一”,点击保存按钮,那么将得到一个json格式的字符串如下:

ExtJs实践:支持返回Json格式的ComboBox

即:{"Id“:"1”,"Name”:"产品1”,"CategoryId”:"1"},而这个json字符串传到服务端是不能被完整的反序列化成一个Product的实例的,因为丢失了Category的信息,能够被完整地反序列化成一个Product的json字符串应该是下面这样的:

{"Id“:"1”,"Name”:"产品1”,"Category”:{"Id“:"1”,"Name”:"产品分类一"}}

那么我们就来改造ExtJs的ComboBox,让它能够返回JSON格式的值,继承Ext的ComboBox,增加一个表明是否是Json格式的属性和两个方法如下:

JsonComboBox = Ext.extend(Ext.form.ComboBox, { 
  isJsonFormat: true, 
  getName: function() { 
    if (this.hiddenName) 
      return this.hiddenName; 
    return this.name; 
  }, 
  getJson: function() { 
    var o = {}; 
    if (this.valueField) 
      o[this.valueField] = this.value; 
    if (this.displayField) 
      o[this.displayField] = this.lastSelectionText; 
    return o; 
  } 
});

Tags:ExtJs 实践 支持

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接