javascript - sencha - extjs tutorial
Cómo hacer foco automático de tagfield en alguna condición (1)
Supongo que su objeto de configuración de tagfield
es así.
var store = Ext.create(''Ext.data.ArrayStore'',{
fields: [
''abbr'',
''state'',
''description'',
''country''
],
data: [
[0, ''AL'', ''Alabama'', ''The Heart of Dixie''],
[1, ''AK'', ''Alaska'', ''The Land of the Midnight Sun''],
[2, ''AZ'', ''Arizona'', ''The Grand Canyon State''],
[3, ''AR'', ''Arkansas'', ''The Natural State''],
[4, ''CA'', ''California'', ''The Golden State''],
[5, ''CO'', ''Colorado'', ''The Mountain State''],
[6, ''CT'', ''Connecticut'', ''The Constitution State''],
[7, ''DE'', ''Delaware'', ''The First State''],
[8, ''DC'', ''District of Columbia'', "The Nation''s Capital"],
[9, ''FL'', ''Florida'', ''The Sunshine State''],
[10, ''GA'', ''Georgia'', ''The Peach State''],
[11, ''HI'', ''Hawaii'', ''The Aloha State''],
[12, ''ID'', ''Idaho'', ''Famous Potatoes'']
]
});
{
xtype: ''tagfield'',
fieldLabel: ''Select a state'',
store: store,
reference: ''states'',
displayField: ''state'',
valueField: ''abbr'',
filterPickList: true,
queryMode: ''local'',
}
Con esta configuración, si selecciona estados como Alabama,Alaska,Arizona
en campos de etiquetas, obtendrá un valor como este [''AL'',''AK'',''AZ'']
porque en la configuración de campo de etiqueta ha establecido valueField: ''abbr''
y esos valores irán al servidor para guardar.
Después de volver a cargar si desea seleccionar esos valores, debe dar esos tres valores tal como están. me gusta
if(myField.xtype == "tagfield"){//tagfield is in lower case
myField.setValue([''AL'',''AK'',''AZ'']); // myField.setValue(myValue);
}
Si aún desea enfocar el mismo campo y si está cargando la tienda de tagfield en el foco, entonces puede usar el método de focus
del campo de etiqueta.
if(myField.xtype == "tagfield"){ //tagfield is in lower case
myField.focus(true,true,function(){
myField.getStore().load({
callback: function(records, operation, success) {
myField.setValue([''AL'',''AK'',''AZ'']);//myField.setValue(myValue);
}
});
});
}
Espero que esto ayude.
Si tiene uso de tagfield como widget, puede usar onWidgetAttach
config en widgetcolumn
y puede especificar la función en él.
Por favor, consulte el enlace .
Tengo un campo de etiqueta en el que estoy cargando algún valor y enviándolo al servidor. Lo que quiero es volver a cargar ese componente tagfield, esos valores se deben seleccionar automáticamente. Actualmente no se seleccionan automáticamente, pero si le doy un foco al campo de etiqueta, entonces esos valores vienen como seleccionados.
¿Cuál es la manera de enfocarse automáticamente en alguna condición? No todo el tiempo.
En este momento solo estoy mostrando los datos, pero esta no es la forma correcta de hacerlo y en IE esto no está funcionando.
Aquí lo que estoy haciendo actualmente
if(myField.xtype == "tagfield"){
myField.xtype.setValue(myValue);
myField.xtype.inputEl.set({''placeholder'':myValue});
}
Lo que quiero es
if(myField.xtype == "tagfield"){
// Automatic Focus OR
// Someway by which I can set the value
}