ext4.0 mvc下的学习

来源:互联网 发布:淘宝店铺装修全能助手 编辑:程序博客网 时间:2024/06/05 07:01

前言:关于ext mvc网上一大堆 看怎么配置,跟什么是mvc的可以去看那些介绍入门的 ,在开发中我发现ext mvc语法跟前面版本很多不相同  所以我把一些感觉挺麻烦的总结在这里所以这里内容会很杂 各位看官如果没找到自己想要的可以给我留言 如果的知道的话会给大家回复的 。

项目用的前段框是用的ext4.0的mvc 话说ext 用的真麻烦 很多东西用了后又忘了,现在整理一下项目中用到的一些东西

1:将表格一行内容放在弹出框中:查看详细  (一般如果双击查看的话简单点),将表格某一行的某列或全部数据传到弹出框中,然后弹出框中内容

跟某列数据一起插到后台。

(1):这是后种情况:  var rows=Ext.ComponentQuery.query('#gridid')[0].getSelectionModel().getSelection();

Ext.ComponentQuery.query('#formid')[0].loadRecord(rows[0]);

这里需要注意的是rows[0]必须要加上[0], 

(2):前者的话写个双击事件:     listeners: {
                        celldblclick: {
                            fn: me.onClick,
                            scope: me
                        },}

  onClick: function(tableview, td, cellIndex, record, tr, rowIndex, e, eOpts) {
        windows=Ext.widget({
            xtype : 'view',//  alias: 'widget.view', 这是弹出画面的别名 在mvc中的写发 不会的去看看mvc吧 这里就不介绍了
            title : '弹出画面'
        });
        Ext.ComponentQuery.query('#Formid')[0].loadRecord(record);
        windows.show();
    }

2:前台表格显示后台你返回数据


{
                            xtype: 'gridcolumn',
                            dataIndex: 'Valid',
                            width: 100,
                            text: '有效期(天)'

}


         这是表格的某列 dataIndex就是根据什么显示的,里面的值跟model的值是相同,这样后台返回数据不需要处理 会自动显示

比如:           addContent: function() {
        this.container.add(
            {
                xtype : 'tviewmain'
            }
        );
        Ext.getStore('Store').getProxy().url='http://localhost:8080/xx/servlet/xxxx?';
    }

3:下面为大家带来一个标准的点击按钮提交from表单到后台的事件处理(servlet)

controller写:   refs: [
           {
               ref: 'addForm',
               selector: '#addForm'
           },
    ],

'#Buttonid':{
           click:function(){
                    var me = this;
                    Ext.Msg.buttonText={
                        yes:'是',
                        no:'否',
                        ok:'确定',
                        cancel:'取消'
                    };
                    Ext.data.JsonP.request({
                    //'http://xxx.xx.com:xx/servlet/xxx'
                        url: 'http://localhost:8080/xx/servlet/xxx'
                        timeout: 300000,
                        params: me.getAddForm().getForm().getValues(),
                        callbackKey: 'callback',
                        success: function(result) {
                            if(result.success==true){
                                Ext.Msg.alert('提示','成功',function(){
                                windows.close();
      Ext.getStore('Store').getProxy().url='http://localhost:8080/xx/servlet/xxxx?';
                                });
                            }else{
                            windows.close();
                                Ext.Msg.alert('提示','失败');
                            }
                        },
                        failure: function(result) {
                        windows.close();
                            Ext.Msg.alert('提示','网络错误,请稍后再试');
                        }
                    });
           }
        }

//后台就不写了 后台返回个{"success":true}就可以了,当然可以随便返回什么会处理就好了

这里说点:(1): params: me.getAddForm().getForm().getValues(), 中getAddForm是根据前面写的     {
               ref: 'addForm',
               selector: '#addForm'
           },

注册了这个常用id就可以使用他的get方法 规则是get后面第一个首字母大写。

今天就写这么多吧写的太长看着容易累,而且我还得开发东西,小渣渣一枚 各位见笑了 能对各位看官有所帮助就好 。

0 0