2010-07-20 6 views
0

Par défaut mes formes ExtJS veulent mettre le bouton d'envoi dans son propre petit div en dessous des éléments de champ de formulaire, ce qui rend les choses ressemblent à ceci:Comment puis-je obtenir le bouton de soumission sur un formulaire ExtJS directement à droite des champs du formulaire?

______________ 
|blah blah  | 
-------------- 
|  /submit/| 
______________ 

Big et laid. Je veux quelque chose comme ça: http://gowalla.com/api/explorer

Évidemment, ce serait un jeu d'enfant à faire dans un autre contexte, mais y a-t-il un moyen facile d'obtenir ExtJS pour faire cela?

Répondre

1

Vous pouvez utiliser une disposition à plusieurs colonnes pour cela.

var frm = new Ext.FormPanel({ 
    ,url: yoururl 
    ,frame:true 
    ,title: 'Your Title' 
    ,bodyStyle: 'padding:5px;' 
    ,items: [{ 
     layout:'column' 
     ,items:[{ 
      columnWidth:.8 
      ,layout:'form' 
      ,items[{ 
       xtype:'textfield' 
      }] 
     },{ 
      columnWidth:.2 
      ,layout:'form' 
      ,items:[{ 
       xtype:'button' 
       ,text: 'Click Me!' 
       ,id: 'my-button' 
      }] 
     }] 
    }] 
}); 

Ensuite, il suffit assignez un événement quelconque clic vous voulez le bouton comme ceci:

var saveBtn = Ext.getCmp('my-button'); 
saveBtn.setTooltip('Save button'); 
saveBtn.purgeListeners(); 

saveBtn.on('click', function(){ 
frm.getForm().submit({ 
    method:'POST' 
    ,url: youraltUrl 
    ,waitTitle:'Connecting' 
    ,waitMsg:'Sending data...' 

    //--- Success ---// 
    ,success : function(){ 
    Ext.Msg.alert('Status', 'Information Updated Successfully', function(btn, text){}); 

    } 

    //--- Failure ---// 
    ,failure : function(form, action){ 
    if(action.failureType == 'server'){ 
     obj = Ext.util.JSON.decode(action.response.responseText); 
      Ext.Msg.alert('Update Failed!', obj.errors.reason); 
    }else{ 
      Ext.Msg.alert('Warning!', 'Authentication server is unreachable : ' + action.response.responseText); 
    } 
} 

}); 
}); 
+0

Cool, merci beaucoup. Je suppose que je n'ai pas encore complètement mis en page des mises en page; Je n'avais pas réalisé qu'ils pouvaient être imbriqués si librement. Tu es incroyable. – Jacob

+0

No Probs; s'il vous plaît accepter la réponse si elle a résolu votre problème :) – DRL

Questions connexes