1 function setStyle(){
2 Ext.fly('myBtn').on({'click':function(){
3 //Ext.fly('myDiv').setStyle('backgroundColor','#ff0000');
4 Ext.fly('myDiv').highlight();
5 }});
6 Ext.fly('myDiv').addClassOnOver('div_mouse_on');
7 }
8
9 function appendAsTag(){
10 var str='<ul><li>玉带桥边鸟鸟风,</li>';
11 str+='<li>牧童横笛边桥东</li>';
12 str+='<li>夕阳返照校花坞</li>';
13 str+='<li>柳絮飞来片片红</li>';
14 Ext.DomHelper.append('myDiv2',str);
15 }
16
17 function appendAsObj(){
18 var obj={
19 tag:'ul',
20 children:[
21 {tag:'li',html:'少年听雨歌楼上,红烛昏罗帐。'},
22 {tag:'li',html:'壮年听雨客舟中,江阔云低,断雁叫西风。'},
23 {tag:'li',html:'而今听雨僧庐下,鬓已星星也。'},
24 {tag:'li',html:'悲欢离合总无情,一任阶前点滴到天明。 '}
25 ]
26 };
27 Ext.DomHelper.append('myDiv2',obj);
28 }
29
30 function testInsert(){
31 var str='<ul><li>人生若只如初见</li>';
32 str+='<li>何事秋风悲画扇</li></ul>';
33 Ext.DomHelper.append('beforeBegin',Ext.getDom('myDiv'),str);
34 }
35
36 function testOverwrite(){
37 var str='<ul><li>人生若只如初见</li>';
38 str+='<li>何事秋风悲画扇</li></ul>';
39 Ext.DomHelper.overwrite('myDiv',str);
40 }
41
42 function testTemplate(){
43 var tpl=Ext.DomHelper.createTemplate('<li>{content}</li>');
44 tpl.overwrite('myDiv',{content:'劝君更尽一杯酒 西出阳关无故人'});
45 }
46
47
48 function testElementSelect(){
49 var win=Ext.Window({
50 id:'myWin',
51 title:'DomQuery',
52 width:300,
53 height:400,
54 renderTo:Ext.getBody(),
55 bbar:[
56 {
57 test:'元素选择器',
58 handler:function(){
59 var el=Ext.DomQuery.selectNode('*');
60 //var el=Ext.query('*');
61 alert(el.innerHTML);
62 }
63 }
64 ]
65 });
66 win.show();
67 }
68
69 function testSelect(){
70 var trs=Ext.query('tr:even');
71 Ext.each(trs,function(tr){
72 tr.style.backgroundColor='#ffff00';
73 });
74 }
75
76 function ns(pkg){
77 if(!pkg){
78 return null;
79 }
80 var o={};
81 var result=o;
82 var arr=pkg.split('.');
83 o=o[arr[0]]={};
84 var len=arr.length;
85 for(var i=1;i<len;i++){
86 o=o[arr[i]]={};
87 }
88 return result;
89 }
90
91
92 function Ajax_Func1() {
93 new Ext.Button({
94 renderTo: "div1",
95 text: "后台Ajax提交",
96 handler: function () {
97 Ext.Ajax.request({
98 url: 'Ajax_Func1.do',
99 headers: {
100 'userHeader': 'userMsg'
101 },
102 params: { a: 10, b: 20 },
103 method: 'GET',
104 success: function (response, options) {
105 Ext.MessageBox.alert('成功', '从服务端获取结果: ' + response.responseText);
106 },
107 failure: function (response, options) {
108 Ext.MessageBox.alert('失败', '请求超时或网络故障,错误编号:' + response.status);
109 }
110 });
111 },
112 id: "bt1"
113 });
114 }
115
116 function ajaxlogin() {
117 new Ext.Button({
118 renderTo: "div1",
119 text: "后台Ajax提交",
120 handler: function () {
121 Ext.Ajax.request({
122 url: 'login.do?method=query',
123 headers: {
124 'userHeader': 'userMsg'
125 },
126 params: { a: 10, b: 20 },
127 method: 'GET',
128 success: function (response, options) {
129 Ext.MessageBox.alert('成功', '从服务端获取结果: ' + response.responseText);
130 },
131 failure: function (response, options) {
132 Ext.MessageBox.alert('失败', '请求超时或网络故障,错误编号:' + response.status);
133 }
134 });
135 },
136 id: "bt1"
137 });
138 }
139
140 function requestJson(){
141 Ext.Ajax.request({
142 url:'test.json',
143 disableCaching:true,
144 success:function(response,opts){alert(response.responseText);},
145 failure:function(response,opts){alert('加载数据失败 ');}
146 });
147 }
148 function requestXml(){
149 Ext.Ajax.request({
150 url:'testdata.xml',
151 success:function(response,opts){
152 var reader =new Ext.data.XmlReader({
153 totalProperty:'results',
154 record:'row',
155 idProperty:'id',
156 messageProperty:'msg'
157 },Ext.data.Record.create([
158 {name:'name'},{name:'occupation'}
159 ]));
160 alert(Ext.encode(reader.read(response)));
161 },
162 failure:function(){
163 alert('加载数据失败 ');
164 }
165 });
166 }
167
168 function sendReq(){
169 var result;
170 var successHandler=function(response,opts){
171 result=response.responseText;
172 }
173 var failureHandler=function(response,opts){
174 alert('加载数据失败');
175 }
176 Ext.Ajax.request({
177 url:'http://www.google.com.hk',
178 success:successHandler,
179 failure:failureHandler
180 });
181
182 }
183
184
185 function loadImg(){
186 var img=document.createElement('img');
187 img.width=700,
188 img.height=700,
189 img.src='images/XX.jpg',
190 document.body.appendChild(img);
191 }
192
193 function loadJs(){
194 var headTag=document.getElementsByTagName('HEAD')[0];
195 var scriptTag=document.createElement('script');
196 scriptTag.type='text/javascript';
197 scriptTag.src='basejs/study/DynamicLoad.js',
198 headTag.appendChild(scriptTag);
199 }
200 function insertScript(source){
201 var headTag=document.getElementsByTagName('HEAD')[0];
202 var scriptTag=document.createElement('script');
203 scriptTag.type='text/javascript';
204 scriptTag.text=source,
205 headTag.appendChild(scriptTag);
206 }
207 function ajaxInsertScript(){
208 Ext.Ajax.request({
209 url:'basejs/study/DynamicLoad.js',
210 success:function(response,opts){
211 var result=response.responseText;
212 insertScript(result);
213 },
214 failure:function(){
215 alert('加载失败');
216 }
217 });
218 }
219
220 function extMsgts1(){
221 var fn=function(){
222 //alert('导致脚本挂起,后续代码无法运行');
223 Ext.Msg.alert('友情提示','Ext.Msg不会导致脚本挂起');
224 Ext.DomHelper.insertHtml('beforeEnd',Ext.getBody().dom,'执行到这里没有');
225 }
226 fn();
227 }
228 function extMsgts2(){
229 Ext.Msg.show({
230 title:'提示',
231 msg:'此操作无法回退,是否继续',
232 buttons:Ext.Msg.YESNO,
233 fn:function(btnId,text,opt){
234 if(btnId=='yes'){
235 Ext.DomHelper.insertHtml('beforeEnd',Ext.getBody().dom,'您选择的继续操作');
236 }else if(btnId='no'){
237 Ext.DomHelper.insertHtml('beforeEnd',Ext.getBody().dom,'取消操作');
238 }
239 },
240 icon:Ext.Msg.WARNING
241 });
242 }
243 function extMsgts3(){
244 Ext.Msg.show({
245 title:'提示',
246 msg:'您的姓名是',
247 buttons:Ext.Msg.OK,
248 prompt:true,
249 fn:function(btnId,text,opt){
250 Ext.DomHelper.insertHtml('beforeEnd',Ext.getBody().dom,'您的名字是'+text);
251 },
252 icon:Ext.Msg.QUESTION,
253 width:300
254 });
255 }
256
257 function extProgressBarts1(){
258 var pbar=new Ext.ProgressBar({
259 id:'pbar',
260 width:300,
261 renderTo:Ext.getBody()
262 });
263
264 pbar.wait({
265 interval:200,
266 increment:15,
267 duration:5000,
268 text:'加载中,请稍后...'
269 });
270 }
271 function extProgressBarts2(){
272 var pbar=new Ext.ProgressBar({
273 id:'pbar',
274 width:300,
275 renderTo:Ext.getBody()
276 });
277 var i=0;
278 var task={
279 run:function(){
280 i+=0.1;
281 pbar.updateProgress(i,'加载进度:'+Math.round(i*100)+'%');
282 if(Math.round(i*100)==100){
283 pbar.updateText('加载完成');
284 Ext.TaskMgr.stop(task);
285 }
286 },
287 interval:500
288 }
289 Ext.TaskMgr.start(task);
290 }
291
292 function extBarts1(){
293 var win=new Ext.Window( {
294 title:'测试工具条',
295 width:400,
296 height:300,
297 bbar:['->',{text:'被靠右了'}]
298 });
299 win.show();
300 }
301
302
303 function extPanelts1(){
304 var contentWin=null;
305 var panel=new Ext.Panel({
306 title:'基础Panel',
307 width:400,
308 height:300,
309 collapsible:true,
310 html:'问渠哪得清如许,为有源头活水来',
311 renderTo:Ext.getBody(),
312 bbar:[{
313 text:'诗歌内容',
314 handler:function(){
315 if(!contentWin){
316 contentWin=new Ext.Window({
317 //id:'poeamWin',
318 title:'诗歌内容',
319 width:400,
320 height:300,
321 closeAction:'hide',
322 maximizable:true,
323 minimizable:true,
324 constrain:true,
325 plain:true,
326 html:panel.body.dom.innerHTML
327 });
328 }
329
330 contentWin.show();
331 }
332 }]
333 });
334 }
335
336 function extTabPanel(){
337 var nodes={
338 text:'日月神教',
339 expanded:true,
340 leaf:false,
341 children:[
342 {id:'boss',text:'任我行',leaf:true},
343 {id:'gg',text:'令狐冲',leaf:true},
344 {id:'mm',text:'任盈盈',leaf:true}
345
346 ]
347 };
348
349
350 var rightTab=new Ext.TabPanel({
351 id:'rightTab',
352 region:'center'
353 });
354
355 var loadNodeInfo=function(node,e){
356 var id=node.attributes.id;
357 if(!id){
358 Ext.Msg.alert('提示信息','节点必须设置唯一的id');
359 return;
360 }
361 var comp=rightTab.getComponent(id);
362 if(!comp){
363 comp=new Ext.Panel({
364 id:id,
365 title:node.attributes.text||'',
366 html:node.attributes.text
367 });
368 rightTab.add(comp);
369 }
370 rightTab.setActiveTab(comp);
371 rightTab.setAutoScroll(comp);
372 }
373
374 var leftTree=new Ext.tree.TreePanel({
375 id:'leftTree',
376 title:'左侧树',
377 region:'west',
378 root:nodes,
379 width:200,
380 autoScroll:true,
381 split:true,
382 rootVisible:true,
383 collapsible:true,
384 listeners:{'click':loadNodeInfo}
385 });
386
387 var vp=new Ext.Viewport({
388 layout:'border',
389 items:[leftTree,rightTab]
390 });
391 }
392 function extTabPanel2(){
393 var nodes={
394 text:'日月神教',
395 expanded:true,
396 leaf:false
397 };
398
399
400 var rightTab=new Ext.TabPanel({
401 id:'rightTab',
402 region:'center'
403 });
404
405 var loadNodeInfo=function(node,e){
406 var id=node.attributes.id;
407 if(!id){
408 Ext.Msg.alert('提示信息','节点必须设置唯一的id');
409 return;
410 }
411 var comp=rightTab.getComponent(id);
412 if(!comp){
413 comp=new Ext.Panel({
414 id:id,
415 //autoLoad:{url:'login.jsp'},
416 title:node.attributes.text||'',
417 //html:'<iframe src="upload.jsp" width="100%" height="100%" frameborder="0" scrolling="auto"></iframe>'
418 html:'<iframe src="'+node.attributes.page+'" width="100%" height="100%" frameborder="0" scrolling="auto"></iframe>'
419 });
420 rightTab.add(comp);
421 }
422 rightTab.setActiveTab(comp);
423 rightTab.setAutoScroll(comp);
424 }
425
426 var leftTree=new Ext.tree.TreePanel({
427 id:'leftTree',
428 title:'左侧树',
429 region:'west',
430 root:{text:'日月神教',expanded:true,leaf:false},
431 dataUrl:'tree.jsp',
432 width:200,
433 autoScroll:true,
434 split:true,
435 rootVisible:true,
436 collapsible:true,
437 listeners:{'click':loadNodeInfo}
438 });
439
440 var vp=new Ext.Viewport({
441 layout:'border',
442 items:[leftTree,rightTab]
443 });
444 }
445
446 function extRecord(){
447 var store=new Ext.data.ArrayStore({
448 fields:[
449 {name:'userName'},
450 {name:'age'},
451 {name:'date'},
452 {name:'addr'}
453 ]
454 });
455
456 var grid=new Ext.grid.GridPanel({
457 viewConfig:{forceFit:true},
458 store:store,
459 columns:[
460 {header:'姓名',dataIndex:'userName'},
461 {header:'年龄',dataIndex:'age'},
462 {header:'出生日期',dataIndex:'date'},
463 {header:'地址',dataIndex:'addr'}
464 ]
465 });
466
467 var win=new Ext.Window({
468 title:'baseGrid',
469 width:600,
470 height:400,
471 layout:'fit',
472 items:grid,
473 buttons:[
474 {
475 text:'newRecord',
476 handler:function(){
477 var User=new Ext.data.Record.create([
478 {name:'userName'},
479 {name:'age'},
480 {name:'date'},
481 {name:'addr'}
482 ]);
483 var record=new User({
484 userName:'大漠穷秋',
485 age:'25',
486 date:'1985-10-10',
487 addr:'亚信联创'
488 });
489 store.add(record);
490 }
491 }
492 ]
493 });
494 win.show();
495 }
496
497 function extRecord2(){
498 var data=[
499 ['大漠穷秋1',25,'1986-04-02','我不告诉你'],
500 ['大漠穷秋2',25,'1985-04-02','我不告诉你'],
501 ['大漠穷秋3',25,'1984-04-02','我不告诉你'],
502 ['大漠穷秋4',25,'1983-04-02','我不告诉你'],
503 ['大漠穷秋5',25,'1982-04-02','我不告诉你']
504 ];
505
506 var store=new Ext.data.ArrayStore({
507 fields:[
508 {name:'userName'},
509 {name:'age'},
510 {name:'date'},
511 {name:'addr'}
512 ]
513 });
514
515 store.loadData(data);
516 var grid=new Ext.grid.GridPanel({
517 viewConfig:{forceFit:true},
518 store:store,
519 columns:[
520 {header:'姓名',dataIndex:'userName'},
521 {header:'年龄',dataIndex:'age'},
522 {header:'出生日期',dataIndex:'date'},
523 {header:'地址',dataIndex:'addr'}
524 ]
525 });
526
527 var win=new Ext.Window({
528 title:'CopyRecord',
529 width:400,
530 height:300,
531 layout:'fit',
532 items:grid,
533 buttons:[{
534 text:'CopyRecode',
535 handler:function(){
536 var record=grid.getSelectionModel().getSelected();
537 if(!record){
538 Ext.Msg.alert('友情提示','请选中需要copy的记录')
539 return;
540 }
541 var newRecord=record.copy();
542 //alert(Ext.encode(record));//Uncaught RangeError: Maximum call stack size exceeded
543 alert(Ext.encode(newRecord));
544 }
545 }]
546 });
547 win.show();
548 }
549
550
551 function extFormPanel(){
552 var data=[
553 ['大漠穷秋1',25,'1086-04-02','你猜1',false],
554 ['大漠穷秋2',25,'1085-04-02','你猜2',false],
555 ['大漠穷秋3',25,'1084-04-02','你猜3',true],
556 ['大漠穷秋4',25,'1083-04-02','你猜4',true],
557 ['大漠穷秋5',25,'1082-04-02','你猜5',false]
558 ];
559 var store=new Ext.data.ArrayStore({
560 fields:[
561 {name:'userName'},
562 {name:'age'},
563 {name:'date'},
564 {name:'addr'},
565 {name:'marrage',type:'boolean'}
566 ]
567 });
568 store.loadData(data);
569 var grid=new Ext.grid.GridPanel({
570 viewConfig:{
571 forceFit:true
572 },
573 border:false,
574 store:store,
575 sm:new Ext.grid.RowSelectionModel({
576 singleSelect:true,
577 listeners:{
578 rowselect:function(sm,row,rec){
579 Ext.getCmp('fm').getForm().loadRecord(rec);
580 }
581 }
582 }),
583 columns:[
584 {header:'姓名',dataIndex:'userName'},
585 {header:'年龄',dataIndex:'age'},
586 {header:'出生日期',dataIndex:'date'},
587 {header:'地址',dataIndex:'addr'},
588 {header:'婚否',dataIndex:'marrage',
589 renderer:function rating(v){
590 if(v){
591 return '<span style="color:red;">是</span>';
592 }
593 return '<span style="color:green;">否</span>';
594 }
595 }
596 ]
597 });
598
599 var form=new Ext.FormPanel({
600 id:'fm',
601 border:false,
602 bodyStyle:{'padding':'30 10'},
603 defaults:{width:120},
604 labelWidth:80,
605 items:[
606 {fieldLabel:'姓名',
607 name:'userName',
608 hiddenName:'userName',
609 xtype:'textfield'
610 },{
611 fieldLabel:'年龄',
612 name:'age',
613 hiddenName:'age',
614 xtype:'textfield'
615 },{
616 fieldLabel:'出生日期',
617 name:'date',
618 hiddenName:'date',
619 xtype:'textfield'
620 },{
621 fieldLabel:'地址',
622 name:'addr',
623 hiddenName:'addr',
624 xtype:'textfield'
625 },{
626 xtype:'radiogroup',
627 columns:'auto',
628 fieldLabel:'婚否',
629 name:'marrage',
630 hiddenName:'marrage',
631 items:[
632 {
633 inputValue:'true',
634 boxLabel:'是'
635 },{
636 inputValue:'false',
637 boxLabel:'否'
638 }
639 ]
640 }
641
642 ]
643 });
644
645 var win=new Ext.Window({
646 title:'RecordAndForm',
647 width:600,
648 height:400,
649 layout:'column',
650 layoutConfig:{
651 padding:'5',align:'middle'
652 },
653 items:[
654 {
655 columnWidth:0.60,
656 height:400,
657 layout:'fit',
658 items:[grid]
659 },{
660 columnWidth:0.40,
661 height:400,
662 layout:'fit',
663 items:[form]
664 }
665 ]
666 });
667 win.show();
668 }
669
670
671 function extStoreFilter(){
672 var data=[
673 ['大漠穷秋',25,'1985-04-02','我不告诉你'],
674 ['漠漠',26,'1984-04-02','我不告诉你'],
675 ['月光漠利亚',27,'1983-04-02','我不告诉你'],
676 ['桃花岛|漠漠',28,'1982-04-02','我不告诉你']
677 ];
678 var store=new Ext.data.ArrayStore({
679 fields:[
680 {name:'name'},
681 {name:'age'},
682 {name:'date'},
683 {name:'addr'}
684 ]
685 });
686 store.loadData(data);
687 var grid=new Ext.grid.GridPanel({
688 viewConfig:{forceFit:true},
689 store:store,
690 columns:[
691 {header:'姓名',dataIndex:'name'},
692 {header:'年龄',dataIndex:'age'},
693 {header:'出生日期',dataIndex:'date'},
694 {header:'地址',dataIndex:'addr'}
695 ]
696 });
697
698 var singleFn=function(){
699 var val=Ext.getCmp('name').getValue();
700 if(!val){
701 store.clearFilter();return;
702 }
703 store.filter('name',val,true,true);
704 }
705 var multiFn=function(){
706 var name=Ext.getCmp('name').getValue();
707 var age=Ext.getCmp('age').getValue();
708 store.filter([
709 {property:'name',value:name,anyMatch:true,caseSensitive:true},
710 {property:'age',value:age}
711 ]);
712 }
713 var win=new Ext.Window({
714
715 title:'过虑记录',
716 width:600,
717 height:400,
718 layout:'fit',
719 items:grid,
720 buttons:[
721 {xtype:'label',text:'姓名'},
722 {xtype:'textfield',id:'name',width:80},
723 {xtype:'label',text:'年龄'},
724 {xtype:'textfield',id:'age',width:80},
725 {handler:singleFn,text:'按姓名过滤'},
726 {handler:multiFn,text:'联合过滤'},
727 {handler:function(){store.clearFilter();},text:'重置'}
728 ]
729 });
730
731 win.show();
732 }
733
734
735 function extTreets(){
736 var tree={
737 id:'001',
738 text:'根',
739 children:[
740 {id:'002',text:'c1'},
741 {id:'003',text:'c2'},
742 {id:'004',text:'c3',
743 children:[{id:'005',text:'s1'},{id:'006',text:'s2'}]
744 }
745 ]
746 };
747
748 function println(msg){
749 var p=document.createElement('p');
750 p.innerHTML=msg;
751 document.body.appendChild(p);
752 }
753
754 function visit(node){
755 println(node.id+"-->"+node.text);
756 if(node.children&&node.children.length){
757 for(var i=0;i<node.children.length;i++){
758 visit(node.children[i]);
759 }
760 }
761 }
762
763 visit(tree);
764 }
765
766 function extTreets2(){
767 var tree={
768 id:'001',
769 text:'根',
770 children:[
771 {id:'002',text:'子1'},
772 {id:'003',text:'子2'},
773 {id:'004',text:'子3',
774 children:[{id:'005',text:'孙1'},{id:'006',text:'孙2'}]
775 }
776 ]
777 };
778
779 function println(msg){
780 var p=document.createElement('p');
781 p.innerHTML=msg;
782 document.body.appendChild(p);
783 }
784
785 function doFind(node,name,value,result){
786 if(node[name]==value){
787 result.push(node);
788 return;
789 }if(node.children&&node.children.length){
790 for(var i=0;i<node.children.length;i++){
791 doFind(node.children[i],name,value,result);
792 }
793 }
794 }
795 function find(name,value){
796 var result=[];
797 doFind(tree,name,value,result);
798 return result[0];
799 }
800 var node=find('text','孙1');
801 println(node.text);
802 }
803 function extTreets3(){
804 var nodes=[
805 {text:'任我行',leaf:true},
806 {text:'令狐冲',leaf:true},
807 {text:'任盈盈',leaf:true}
808 ];
809 var treePanel=new Ext.tree.TreePanel({
810 border:false,
811 autoScroll:true,
812 root:{text:'日月神教',leaf:false,expanded:true,children:nodes},
813 rootVisible:true
814 });
815 var win=new Ext.Window({
816 title:'树',
817 width:200,
818 height:400,
819 layout:'fit',
820 items:[treePanel],
821 buttons:[
822 {
823 text:'增加',
824 handler:function(){
825 var newNode=new Ext.tree.TreeNode({
826 text:'新节点'+(treePanel.root.childNodes.length+1),
827 leaf:true
828 });
829 treePanel.root.appendChild(newNode);
830 }
831 },{
832 text:'移动',
833 handler:function(){
834 var ryy=treePanel.root.childNodes[2];
835 treePanel.root.appendChild(ryy);
836 }
837 }
838 ]
839 });
840 win.show();
841 }
842
843
844 function uploadts2(){
845 var formPanel = new Ext.form.FormPanel({
846 renderTo:Ext.getBody(),
847 labelAlign : 'right',
848 labelWidth : 60,
849 frame : true,
850 border : false,
851 fileUpload : true,
852 width:300,
853 height:100,
854 items : [{
855 xtype : 'textfield',
856 inputType : 'file',
857 name:'file'
858 }],
859 buttons : [{
860 text : '上传',
861 iconCls : 'icon_uploading',
862 handler : function() {
863 if (!formPanel.getForm().isValid()) {
864 Ext.MessageBox.alert("信息", "表单输入验证失败,请正确填写完整!");
865 return;
866 }
867
868 formPanel.form.submit({
869 waitMsg : 'Uploading ....',
870 url : 'struts_fileupload.do',
871 method : "POST",
872 success : function(form, action) {
873 Ext.Msg.alert('success');
874 },
875 failure : function(form, action) {
876 Ext.Msg.alert('error');
877 }
878 });
879
880 }
881 }]
882 });
883
884 var win=new Ext.Window({
885 width:300,
886 height:100,
887 layout:'fit',
888 items:[formPanel]
889
890 });
891 win.show();
892 }
893
894
895
896
897
898
899
900
901
902
903 //************************************