Ext에서 CheckBox 확장

2184 단어 htmlext

Ext의 Checkbox를 사용할 때 항상 form과 함께 제출해야 하지만 Checkbox가 설정한 기본 제출 값은 "on"또는 "입니다. 백그라운드 코드에서 필드의 제출을 판단하고 값을 받아야 합니다. 우리의 일반적인 사용 습관에 부합되지 않습니다. 즉, 제출한 값을 대응하는 boolean 형식으로 직접 바꾸는 것입니다. 이를 위해 다음과 같은 사용 방식을 충족시키기 위해 확장과 봉인을 합니다.
 
	justgin.bap.CheckboxEx = Ext.extend(Ext.form.Checkbox, {
		trueValue: true,
		falseValue: false,
		hiddenField: {value:''},
		
		onRender : function(ct, position){
	    	justgin.bap.CheckboxEx.superclass.onRender.call(this, ct, position);
	    	var hidden = this.el.insertSibling({tag:'input', type:'hidden', name: this.name}, 'before', true);
	    	hidden.value = this.hiddenField.value;
	    	this.hiddenField = hidden;
	    	this.el.dom.removeAttribute('name');
	    	this.on('check', this.onCheck);
	    },
	    
	    setValue : function(v){
	    	var me = this;    	
	    	justgin.bap.CheckboxEx.superclass.setValue.call(this, v);
	    	this.hiddenField.value = this.checked?me.trueValue:me.falseValue;
	    },
	   
	    getValue : function(v){
	    	return this.hiddenField.value;
	    },
	   
	    onDestroy : function(){
	        Ext.destroy(this.wrap);
	        justgin.bap.CheckboxEx.superclass.onDestroy.call(this);
	    },
	
		onCheck : function(me, checked){
	        this.hiddenField.value = checked?me.trueValue:me.falseValue;
	    }

});

 
두 개의 속성trueValue와falseValue를 확장하면 사용자가 선택하거나 취소할 때 제출한 값을 지정할 수 있습니다. 기본값은true와false입니다
필드를 다시 쓰는 onRender 방법은render에서 보여주는 html의 input 요소의 이름을 제거하고 같은 이름의hidden 요소를 삽입하여 제출할 값을 저장하고 사용 방식을 바꾸지 않는 전제에서from이 제출할 때 삽입된 새로운 요소를 제출할 수 있도록 합니다. 설정된 값이 백그라운드에 제출될 수 있도록 보장합니다
setValue와 getValue 방법을 다시 써서 접근할 때 데이터의 동기화를 보장합니다
자주 사용하는 Ext에서 대상을 만드는 방법은 두 가지가 있습니다: new justgin.bap.CheckboxEx () 와 Ext.create ({xtype:'checkbox'}) 는 사용자가 두 번째 방식을 사용할 때 확장된 대상을 만들려면 클래스의 성명 후에 대상 유형의 등록 문장을 넣으면 됩니다
Ext.reg('checkbox', justgin.bap.CheckboxEx);

좋은 웹페이지 즐겨찾기