direct-form.js
上传用户:shuoshiled
上传日期:2018-01-28
资源大小:10124k
文件大小:4k
源码类别:

中间件编程

开发平台:

JavaScript

  1. /*!
  2.  * Ext JS Library 3.0.0
  3.  * Copyright(c) 2006-2009 Ext JS, LLC
  4.  * licensing@extjs.com
  5.  * http://www.extjs.com/license
  6.  */
  7. // This example illustrates how to load a FormPanel or BasicForm through Ext.Direct.
  8. Ext.onReady(function(){
  9.     // Notice that Direct requests will batch together if they occur
  10.     // within the enableBuffer delay period (in milliseconds).
  11.     // Slow the buffering down from the default of 10ms to 100ms
  12.     Ext.app.REMOTING_API.enableBuffer = 100;
  13.     Ext.Direct.addProvider(Ext.app.REMOTING_API);
  14.     
  15.     // provide feedback for any errors
  16.     Ext.QuickTips.init();
  17.     
  18.     var basicInfo = new Ext.form.FormPanel({
  19.         // configs for FormPanel
  20.         title: 'Basic Information',
  21.         border: false,
  22.         padding: 10,
  23.         buttons:[{
  24.             text: 'Submit',
  25.             handler: function(){
  26.                 basicInfo.getForm().submit({
  27.                     params: {
  28.                         foo: 'bar',
  29.                         uid: 34 
  30.                     }
  31.                 });
  32.             }
  33.         }],
  34.         // configs apply to child items
  35.         defaults: {anchor: '-20'}, // provide some room on right for validation errors
  36.         defaultType: 'textfield',
  37.         items: [{
  38.             fieldLabel: 'Name',
  39.             name: 'name'
  40.         },{
  41.             fieldLabel: 'Email',
  42.             msgTarget: 'side',
  43.             name: 'email'        
  44.         },{
  45.             fieldLabel: 'Company',
  46.             name: 'company'
  47.         }],
  48.         
  49.         // configs for BasicForm
  50.         api: {
  51.             // The server-side method to call for load() requests
  52.             load: Profile.getBasicInfo,
  53.             // The server-side must mark the submit handler as a 'formHandler'
  54.             submit: Profile.updateBasicInfo
  55.         },
  56.         // specify the order for the passed params    
  57.         paramOrder: ['uid', 'foo']
  58.     });
  59.     
  60.     var phoneInfo = new Ext.form.FormPanel({
  61.         title: 'Phone Numbers',
  62.         border: false,
  63.         api: {
  64.             load: Profile.getPhoneInfo
  65.         },    
  66.         padding: 10,
  67.         paramOrder: ['uid'],
  68.         defaultType: 'textfield',
  69.         defaults: {anchor: '100%'},
  70.         items: [{
  71.             fieldLabel: 'Office',
  72.             name: 'office'
  73.         },{
  74.             fieldLabel: 'Cell',
  75.             name: 'cell'        
  76.         },{
  77.             fieldLabel: 'Home',
  78.             name: 'home'
  79.         }]
  80.     });
  81.     
  82.      var locationInfo = new Ext.form.FormPanel({
  83.         title: 'Location Information',
  84.         border: false,
  85.         padding: 10,
  86.         api: {
  87.             load: Profile.getLocationInfo
  88.         },    
  89.         paramOrder: ['uid'],
  90.         defaultType: 'textfield',
  91.         defaults: {anchor: '100%'},
  92.         items: [{
  93.             fieldLabel: 'Street',
  94.             name: 'street'
  95.         },{
  96.             fieldLabel: 'City',
  97.             name: 'city'            
  98.         },{
  99.             fieldLabel: 'State',
  100.             name: 'state'
  101.         },{
  102.             fieldLabel: 'Zip',
  103.             name: 'zip'
  104.         }]
  105.     });    
  106.      var accordion = new Ext.Panel({
  107.         layout: 'accordion',
  108.         renderTo: Ext.getBody(),
  109.         title: 'My Profile',
  110.         width: 300,
  111.         height: 240,    
  112.         items: [basicInfo, phoneInfo, locationInfo]
  113.     });
  114.         
  115.     // load the forms (notice the load requests will get batched together)
  116.     basicInfo.getForm().load({
  117.         // pass 2 arguments to server side getBasicInfo method (len=2)
  118.         params: {
  119.             foo: 'bar',
  120.             uid: 34 
  121.         }
  122.     });
  123.     phoneInfo.getForm().load({
  124.         params: {
  125.             uid: 5
  126.         }
  127.     });    
  128.     // defer this request just to simulate the request not getting batched
  129.     // since it exceeds to configured buffer
  130.     (function(){
  131.         locationInfo.getForm().load({
  132.             params: {
  133.                 uid: 5
  134.             }
  135.         });
  136.     }).defer(200);    
  137.     
  138.     // rpc call
  139.     TestAction.doEcho('sample');
  140. });