Ext.form.ComboBox setValue() 초기값 설정 문제

1634 단어 htmlext
Store에 listeners를 추가할 때 ComBox에 해당하는 키 값을 설정합니다.
var nodeNameStore = new Ext.data.JsonStore({
		url : Listener
				+ '?className=etl.db.Node&methodName=getAllNodeJSON&paramCount=0',
		totalProperty : 'results',
		root : 'root',
        id : 'id',
		fields : ['id', 'name'],
		listeners : {
			load : function() {
				nodeName.setValue(nodeName.getValue());
			}
		}
	});
	nodeNameStore.load();

	var nodeName = new Ext.form.ComboBox({
		xtype : "combo",
		name : "nodeName",
		fieldLabel : " ",
		displayField : 'name',//  
		valueField : 'id',
		store : nodeNameStore,
		triggerAction : 'all',
		editable : false,
		allowBlank : false,
		emptyText : ' ',
		selectOnFocus : true
	});
nodeName.setValue("1");

load () 방법은 비동기적으로 불러오는 것이기 때문에 setValue () 에서 반드시 불러오는 것을 보장할 수 없기 때문에 정청 이벤트를 추가해야 합니다.
그러나 Ext.grid에서는 이러한 설정이 작동하지 않습니다.좀 더 렌더링이 필요합니다.
{
		id : "node",
		header : " ",
		dataIndex : 'node',
		sortable : true,
		width : 80,
		editor : nodeName,
		renderer : function(value, p, r) {
			var record = nodeNameStore.getById(value); 
			if (record == undefined) {
				return "";
			} else {
				return record.data.name;
			}
		}
	}

이렇게 하면 설정할 때 자동으로 정확한 dispalyField가 표시됩니다.

좋은 웹페이지 즐겨찾기