Ext 的代码演示

1 , 在ext 框架中,可以利用Ext.Panel 的autoLoad 属性来加载你需要的公共画面。比如你的logo,还有你的版权声明等等。
具体的使用方式是:
首先,在jsp或者html页面上给出一个位置来放置你准备放置的冬冬。
然后在js中间声明:   复制代码
  var  Footer  =   new  Ext.Panel( {   
    border:
false,   
    autoLoad: 
{url: 'template/Footer.html', callback: function(){}, scope: this}   
}
);   
Footer.render(
' Footer ' );  
        
var  Footer  =   new  Ext.Panel( {
        border:
false,
        autoLoad: 
{url: 'template/Footer.html', callback: function(){}, scope: this}
    }
);
    Footer.render(
' Footer ' );

autoLoad的三个参数的意思很明显,url表示需要装载的路径,callback表示在装载完毕之后干些什么,scope表示有效范围。
2, 在表单的提交过程当中,我们可以设置的地方。如下面的代码:
var  form  =   new  Ext.form.FormPanel( {   
        defaultType: 
'textfield',   
        labelAlign: 
'right',   
        title: 
'用户登陆',   
        labelWidth: 
120,   
        frame: 
true,   
        width: 
500,   
        autoHeight: 
true,   
        waitMsgTarget: 
true/*  true的意思是说表单提交时的等待信息在这个表单之内显示,而不是弹出框 */  
        items: [
{   
            fieldLabel: 
'用户名',   
            name:
"userAccount",   
            id:
"userAccount",   
            allowBlank:
false  
        }
,{   
            fieldLabel: 
'密码',   
            inputType :
'password',   
            id:
"passwd",   
            name:
"passwd"  
        }
],   
        buttons: [
{   
            text: 
'登陆',   
            handler: 
function(){   
                form.getForm().submit(
{   
                    url:
'../servlet/login'/* 表示表单提交的时候的路径。 */  
                    waitMsg:
'正在验证用户...'/* 表示提交过程中间的等待信息。 */  
                    success: onLoginSuccess, 
/* 服务器返回正确的信息之后我们调用的方法。 */  
                    failure: onFailure 
/* 服务器返回错误的信息之后我们调用的方法。 */  
                }
);   
            }
   
        }
,{   
            text: 
'取消',   
            handler: 
function(){   
                win.hide();   
            }
   
        }
]   
    }
);   
/*  在用户校验失败的时候判断是否是服务器连接失败  */   
    
var  onFailure  =   function (form,action) {   
        
if(action.failureType=="connect"){    
/*  在服务器返回了错误的信息或者是没有返回的时候,我们可以根据action.failureType来判断发生错误的大概原因,  
如果值为•connect•,那么表示是连接请求失败,•server•表示服务器端检查出了提交数据的错误,•client•表示客户端的数据异常 
*/
  
           Ext.Msg.alert(
'服务器异常''服务器异常,请与管理员联系!');   
        }
   
    }
   
/*  用户校验成功之后的动作  */   
    
var  gotoUrl  =   function () {   
        window.location.href
="ProjectManage.jsp";   
    }
   
    
var  onLoginSuccess  =   function (form,action) {   
        win.hide();   
    }
.createSequence(gotoUrl, this )   
/*  createSequence这个方法还有一个姊妹方法,createInterceptor。  
她们分别表示在某某方法之后和某某方法之前执行某一个方法。其实就是js里面的aop。保证一个函数的调用顺序 *
3, 有了下面的设定,上面讲的表单的提交之后,如果有数据校验失败的信息,在页面上将表现出更好的错误提示信息。
/*  设置提示消息的显示方式  */   
    Ext.QuickTips.init();   
    Ext.form.Field.prototype.msgTarget 
=   ' side ' ;
4、讲一下gridPanel这个控件在创建之后都有哪些事件可以触发,以及我们如何来设置这样的触发事件。
察看以下gridPanel的源码,我们发现有如下的这么多的事件可以触发。
//  raw events   
             /**  
             * @event click  
             * The raw click event for the entire grid.  ------简单的事件描述,相信大家都看得懂,就不解释了。  
             * @param {Ext.EventObject} e       ---------------这个是框架会自动传入的参数,下面的一样。  
             
*/
  
            
" click " ,                                // ------------- 这个是事件名称,下面的一样   
             /**  
             * @event dblclick  
             * The raw dblclick event for the entire grid.  
             * @param {Ext.EventObject} e  
             
*/
  
            
" dblclick " ,   
            
/**  
             * @event contextmenu  
             * The raw contextmenu event for the entire grid.  
             * @param {Ext.EventObject} e  
             
*/
  
            
" contextmenu " ,   
            
/**  
             * @event mousedown  
             * The raw mousedown event for the entire grid.  
             * @param {Ext.EventObject} e  
             
*/
  
            
" mousedown " ,   
            
/**  
             * @event mouseup  
             * The raw mouseup event for the entire grid.  
             * @param {Ext.EventObject} e  
             
*/
  
            
" mouseup " ,   
            
/**  
             * @event mouseover  
             * The raw mouseover event for the entire grid.  
             * @param {Ext.EventObject} e  
             
*/
  
            
" mouseover " ,   
            
/**  
             * @event mouseout  
             * The raw mouseout event for the entire grid.  
             * @param {Ext.EventObject} e  
             
*/
  
            
" mouseout " ,   
            
/**  
             * @event keypress  
             * The raw keypress event for the entire grid.  
             * @param {Ext.EventObject} e  
             
*/
  
            
" keypress " ,   
            
/**  
             * @event keydown  
             * The raw keydown event for the entire grid.  
             * @param {Ext.EventObject} e  
             
*/
  
            
" keydown " ,   
  
            
//  custom events   
             /**  
             * @event cellmousedown  
             * Fires before a cell is clicked  
             * @param {Grid} this  
             * @param {Number} rowIndex  
             * @param {Number} columnIndex  
             * @param {Ext.EventObject} e  
             
*/
  
            
" cellmousedown " ,   
            
/**  
             * @event rowmousedown  
             * Fires before a row is clicked  
             * @param {Grid} this  
             * @param {Number} rowIndex  
             * @param {Ext.EventObject} e  
             
*/
  
            
" rowmousedown " ,   
            
/**  
             * @event headermousedown  
             * Fires before a header is clicked  
             * @param {Grid} this  
             * @param {Number} columnIndex  
             * @param {Ext.EventObject} e  
             
*/
  
            
" headermousedown " ,   
  
            
/**  
             * @event cellclick  
             * Fires when a cell is clicked.  
             * The data for the cell is drawn from the {@link Ext.data.Record Record}  
             * for this row. To access the data in the listener function use the  
             * following technique:  
             * <pre>  
<code>  
    function(grid, rowIndex, columnIndex, e) {  
        var record = grid.getStore().getAt(rowIndex);  // Get the Record  
        var fieldName = grid.getColumnModel().getDataIndex(columnIndex); // Get field name  
        var data = record.get(fieldName);  
    }  
</code>  
</pre>  
             * @param {Grid} this  
             * @param {Number} rowIndex  
             * @param {Number} columnIndex  
             * @param {Ext.EventObject} e  
             
*/
  
            
" cellclick " ,   
            
/**  
             * @event celldblclick  
             * Fires when a cell is double clicked  
             * @param {Grid} this  
             * @param {Number} rowIndex  
             * @param {Number} columnIndex  
             * @param {Ext.EventObject} e  
             
*/
  
            
" celldblclick " ,   
            
/**  
             * @event rowclick  
             * Fires when a row is clicked  
             * @param {Grid} this  
             * @param {Number} rowIndex  
             * @param {Ext.EventObject} e  
             
*/
  
            
" rowclick " ,   
            
/**  
             * @event rowdblclick  
             * Fires when a row is double clicked  
             * @param {Grid} this  
             * @param {Number} rowIndex  
             * @param {Ext.EventObject} e  
             
*/
  
            
" rowdblclick " ,   
            
/**  
             * @event headerclick  
             * Fires when a header is clicked  
             * @param {Grid} this  
             * @param {Number} columnIndex  
             * @param {Ext.EventObject} e  
             
*/
  
            
" headerclick " ,   
            
/**  
             * @event headerdblclick  
             * Fires when a header cell is double clicked  
             * @param {Grid} this  
             * @param {Number} columnIndex  
             * @param {Ext.EventObject} e  
             
*/
  
            
" headerdblclick " ,   
            
/**  
             * @event rowcontextmenu  
             * Fires when a row is right clicked  
             * @param {Grid} this  
             * @param {Number} rowIndex  
             * @param {Ext.EventObject} e  
             
*/
  
            
" rowcontextmenu " ,   
            
/**  
             * @event cellcontextmenu  
             * Fires when a cell is right clicked  
             * @param {Grid} this  
             * @param {Number} rowIndex  
             * @param {Number} cellIndex  
             * @param {Ext.EventObject} e  
             
*/
  
            
" cellcontextmenu " ,   
            
/**  
             * @event headercontextmenu  
             * Fires when a header is right clicked  
             * @param {Grid} this  
             * @param {Number} columnIndex  
             * @param {Ext.EventObject} e  
             
*/
  
            
" headercontextmenu " ,   
            
/**  
             * @event bodyscroll  
             * Fires when the body element is scrolled  
             * @param {Number} scrollLeft  
             * @param {Number} scrollTop  
             
*/
  
            
" bodyscroll " ,   
            
/**  
             * @event columnresize  
             * Fires when the user resizes a column  
             * @param {Number} columnIndex  
             * @param {Number} newSize  
             
*/
  
            
" columnresize " ,   
            
/**  
             * @event columnmove  
             * Fires when the user moves a column  
             * @param {Number} oldIndex  
             * @param {Number} newIndex  
             
*/
  
            
" columnmove " ,   
            
/**  
             * @event sortchange  
             * Fires when the grid's store sort changes  
             * @param {Grid} this  
             * @param {Object} sortInfo An object with the keys field and direction  
             
*/
  
            
" sortchange "   
然后是我们怎么样来设置这些事件。
/*  设置grid的双击事件  */   
grid.on(
" rowdblclick "  ,  function (grid) {   
   
var row = grid.getSelectionModel().getSelected();   
   alert(row.get(
"title"))   
}
);
5,由DWRProxy来使用dwr的数据
/*  由dwr提供的数据创建适合grid使用的数据  */   
    
var  recordType  =  Ext.data.Record.create([  // 给出一个后台数据的结构   
         {name: "id", type: "int"} ,   
        
{name: "title", type: "string"} ,   
        
{name: "content", type: "string"} ,   
        
{name: "name", mapping:"author.name", type: "string"} ,   
        
{name: "email", mapping:"author.email", type: "string"}    
      ]);   
    
var  ds  =   new  Ext.data.Store( {   
        proxy: 
new Ext.data.DWRProxy(testdwr.getItems, true),   
        reader: 
new Ext.data.ListRangeReader({id:"id",totalProperty:'totalSize'},recordType),   
        remoteSort: 
true  
      }
);   
    ds.load(
{params:{start:0, limit:10}, arg:[]} );   // 用于分页的信息以及其他信息都可以在这儿设置参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值