2012-03-31 2 views
2

Может ли кто-нибудь помочь мне центрировать кнопки по горизонтали формы? Я не знаю, как я могу предоставить макет Vbox с выравниванием по центру с элементами кнопки.Центральные кнопки по горизонтали формы

Следующий код от Sencha Docs.

Ext.create('Ext.form.Panel', { 
title: 'Simple Form', 
bodyPadding: 5, 
width: 350, 

// The form will submit an AJAX request to this URL when submitted 
url: 'save-form.php', 

// Fields will be arranged vertically, stretched to full width 
layout: 'anchor', 
defaults: { 
    anchor: '100%' 
}, 

// The fields 
defaultType: 'textfield', 
items: [{ 
    fieldLabel: 'First Name', 
    name: 'first', 
    allowBlank: false 
},{ 
    fieldLabel: 'Last Name', 
    name: 'last', 
    allowBlank: false 
}], 

// Reset and Submit buttons 
buttons: [{ 
    text: 'Reset', 
    handler: function() { 
     this.up('form').getForm().reset(); 
    } 
}, { 
    text: 'Submit', 
    formBind: true, //only enabled once the form is valid 
    disabled: true, 
    handler: function() { 
     var form = this.up('form').getForm(); 
     if (form.isValid()) { 
      form.submit({ 
       success: function(form, action) { 
        Ext.Msg.alert('Success', action.result.msg); 
       }, 
       failure: function(form, action) { 
        Ext.Msg.alert('Failed', action.result.msg); 
       } 
      }); 
     } 
    } 
}], 
renderTo: Ext.getBody() 
}); 

Благодарю вас за вашу поддержку!

С наилучшими пожеланиями, Шуб

ответ

2

Я нашел правильное решение. Вы должны установить только конфигурацию «buttonAlign» в центр.

Ext.create('Ext.form.Panel', { 
    title: 'Simple Form', 
    bodyPadding: 5, 
    width: 350, 

    // The form will submit an AJAX request to this URL when submitted 
    url: 'save-form.php', 

    // Fields will be arranged vertically, stretched to full width 
    layout: 'anchor', 
    defaults: { 
     anchor: '100%' 
    }, 

    // The fields 
    defaultType: 'textfield', 
    items: [{ 
     fieldLabel: 'First Name', 
     name: 'first', 
     allowBlank: false 
    },{ 
     fieldLabel: 'Last Name', 
     name: 'last', 
     allowBlank: false 
    }], 
    buttonAlign: 'center', 

    // Reset and Submit buttons 
    buttons: [{ 
     text: 'Reset', 
     handler: function() { 
      this.up('form').getForm().reset(); 
     } 
    }, { 
     text: 'Submit', 
     formBind: true, //only enabled once the form is valid 
     disabled: true, 
     handler: function() { 
      var form = this.up('form').getForm(); 
      if (form.isValid()) { 
       form.submit({ 
        success: function(form, action) { 
         Ext.Msg.alert('Success', action.result.msg); 
        }, 
        failure: function(form, action) { 
         Ext.Msg.alert('Failed', action.result.msg); 
        } 
       }); 
      } 
     } 
    }], 
    renderTo: Ext.getBody() 
}); 
+0

отличный ответ, большое спасибо: D – SummerCode

0

вы можете использовать "просветляющего" для этого. проверьте this.

bbar: { 
     layout: 'auto', 
     items: { 
      xtype: 'container', 
      autoEl: 'center', 
      defaultType: 'button', 
      items: [{ 
       text: 'Reset', 
       handler: function() { 
        this.up('form').getForm().reset(); 
       }}, 
      { 
       text: 'Submit', 
       formBind: true, 
       //only enabled once the form is valid 
       disabled: true, 
       handler: function() { 
        var form = this.up('form').getForm(); 
        if (form.isValid()) { 
         form.submit({ 
          success: function(form, action) { 
           Ext.Msg.alert('Success', action.result.msg); 
          }, 
          failure: function(form, action) { 
           Ext.Msg.alert('Failed', action.result.msg); 
          } 
         }); 
        } 
       }}] 
     } 
    } 
Смежные вопросы