ArgsField.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. Ext.form.ArgsField= Ext.extend(Ext.Container, {
  2. value:'',
  3. usefield:true,
  4. layout: 'column',
  5. argnum:'',
  6. layoutConfig: {columns: this.argnum},
  7. initComponent : function(){
  8. Ext.form.ArgsField.superclass.initComponent.call(this);
  9. var me = this;
  10. var args=this.value.split(",");
  11. for(var i=0;i<args.length;i++){
  12. var xtype=args[i].split(";")[1];
  13. var name=args[i].split(";")[0];
  14. if(i==0){
  15. me.insert(i, {
  16. xtype:xtype,
  17. columnWidth:0.2,
  18. hideLabel: true,
  19. allowBlank:false,
  20. blankText:'必填项',
  21. name: name,
  22. listeners: {
  23. change: function(field, newValue, oldValue ){
  24. field.value=newValue;
  25. }
  26. }
  27. });
  28. }else {
  29. me.insert(i, {
  30. xtype:xtype,
  31. columnWidth:0.2,
  32. align:'right',
  33. allowBlank:false,
  34. blankText:'必填项',
  35. name: name,
  36. listeners: {
  37. change: function(field, newValue, oldValue ){
  38. field.value=newValue;
  39. }
  40. }
  41. });
  42. }
  43. }
  44. },
  45. reset: function(){
  46. var me = this;
  47. },
  48. listeners: {
  49. afterrender: function(){
  50. //this.getEl().dom.style.height = 22;
  51. this.getEl().dom.style.overflow = 'hidden';
  52. }
  53. },
  54. getValue: function(){//以;隔开{类型;值}
  55. var me = this;
  56. var items=me.items.items;
  57. var arr=new Array();
  58. //标示 这是单元格条件
  59. for(var i=0;i<items.length;i++){
  60. arr.push(items[i].name+";"+items[i].value);
  61. }
  62. if(arr.length>0){
  63. return me.fieldLabel+":"+arr.toString();
  64. }
  65. else return null;
  66. },
  67. setValue: function(value){
  68. if(value != null && value.toString().trim() != ''){
  69. this.items.items[2].setValue(value);
  70. }
  71. },
  72. isValid: function(){
  73. return true;
  74. }
  75. });
  76. Ext.reg('argsfield', Ext.form.ArgsField);