DyConditionField.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. Ext.form.DyConditionField= Ext.extend(Ext.Container, {
  2. usefield:true,
  3. type:'',
  4. caption:'',
  5. relation:'',
  6. layout: 'column',
  7. value:'',
  8. name:'',
  9. initComponent : function(){
  10. Ext.form.DyConditionField.superclass.initComponent.call(this);
  11. var me = this;
  12. me.insert(0, {
  13. xtype: 'displayfield',
  14. columnWidth:0.4,
  15. value: me.caption,
  16. align:'right',
  17. name: me.name
  18. });
  19. me.insert(1,{
  20. xtype: 'displayfield',
  21. value: me.relation,
  22. columnWidth:0.2,
  23. name: me.name+"_relation"
  24. });
  25. me.insert(2, {
  26. xtype:me.type,
  27. columnWidth:0.4,
  28. hideLabel:true,
  29. name:me.name+"_condition",
  30. listeners: {
  31. change: function(field, newValue, oldValue ){
  32. field.value=newValue;
  33. }
  34. }
  35. });
  36. },
  37. reset: function(){
  38. var me = this;
  39. me.items.items[0].reset();
  40. me.items.items[1].reset();
  41. },
  42. listeners: {
  43. afterrender: function(){
  44. //this.getEl().dom.style.height = 22;
  45. this.getEl().dom.style.overflow = 'hidden';
  46. }
  47. },
  48. getValue: function(){//以;隔开{类型;值}
  49. var me = this;
  50. if(me.items.items[2].value){
  51. return me.items.items[0].name + ';' + me.items.items[1].value+";"+me.items.items[2].value;
  52. }
  53. else return null;
  54. },
  55. setValue: function(value){
  56. if(value != null && value.toString().trim() != ''){
  57. this.items.items[2].setValue(value);
  58. }
  59. },
  60. isValid: function(){
  61. return true;
  62. }
  63. });
  64. Ext.reg('dyconfield', Ext.form.DyConditionField);