extjs 远程数据源

1本地数据源组合框

 

[plain] view plaincopy
 
  1. Ext.onReady(function(){  
  2.     //创建数据模型  
  3.     Ext.regModel('PostInfo', {  
  4.         fields: [{name: 'province'}, {name: 'post'}]  
  5.         });  
  6.   
  7.         //定义组合框中显示的数据源  
  8.         var postStore = Ext.create('Ext.data.Store', {  
  9.             model: 'PostInfo',  
  10.             data: [  
  11.             {province:'北京', post: '100000'},  
  12.             {province:'通县', post: '101100'},  
  13.             {province:'昌平', post: '102200'},  
  14.             {province:'大兴', post: '102600'},  
  15.             {province:'密云', post: '101500'},  
  16.             {province:'延庆', post: '102100'},  
  17.             {province:'顺义', post: '101300'},  
  18.             {province:'怀柔', post: '101400'}  
  19.             ]  
  20.     });  
  21.     //创建表单  
  22.     Ext.create('Ext.form.Panel', {  
  23.         title: 'Ext.form.field.ComboBox本地数据源示例',  
  24.             renderTo:Ext.getBody(),  
  25.             bodyPadding: 5,  
  26.             frame: true,  
  27.             height: 100,  
  28.             width: 270,  
  29.             defaults: {//统一设置表单字段默认属性  
  30.             labelSeparator: ':', //分隔符  
  31.             labelWidth: 70, //标签宽度  
  32.             width: 200, //字段宽度  
  33.             labelAlign: 'left'//标签对齐方式  
  34.         },   
  35.         items: [{  
  36.             xtype: 'combo',   
  37.             listConfig: {  
  38.             emptyText: '未找到匹配值', //当值不在列表时的提示信息  
  39.             maxHeight: 60 //设置下拉列表的最大高度为60像素  
  40.         },  
  41.         name: 'post',  
  42.         fieldLabel: '邮政编码',   
  43.         triggerAction: 'all',//单击除法按钮显示全部数据  
  44.         store: postStore, //设置数据源  
  45.         displayField: 'province',//定义要显示的字段  
  46.         valueField: 'post', //定义值字段  
  47.         queryMode: 'local', //本地模式  
  48.         forceSelection: true, //要求输入值必须在列表中存在  
  49.         typeAhead: true, //允许自动选择匹配的剩余部分文本  
  50.         value: '102600' //默认选择大兴  
  51.         }]  
  52.     });  
  53. });  

 

2.远程数据源的组合框

 

[plain] view plaincopy
 
  1. Ext.onReady(function(){  
  2.             //创建数据模型  
  3.             Ext.regModel('BookInfo', {  
  4.                 fields: [{name: 'bookName'}]  
  5.             });  
  6.             //定义组合框中显示的数据源  
  7.             var bookStore = Ext.create('Ext.data.Store', {  
  8.                 model: 'BookInfo',  
  9.                 proxy: {  
  10.                     type: 'ajax', //Ext.data.AjaxProxy  
  11.                     url: 'bookSearchServer.jsp',  
  12.                     reader: new Ext.data.ArrayReader({model: 'BookInfo'})  
  13.                 }  
  14.             });  
  15.             //创建表单  
  16.             Ext.create('Ext.form.Panel', {  
  17.               
  18.                 title: 'Ext.form.field.ComboBox远程数据源示例',  
  19.                 renderTo:Ext.getBody(),  
  20.                 bodyPadding: 5,  
  21.                 frame: true,  
  22.                 height: 100,  
  23.                 width: 270,  
  24.                 defaults: {//统一设置表单字段默认属性  
  25.                     labelSeparator: ':', //分隔符  
  26.                     labelWidth: 70, //标签宽度  
  27.                     width: 200, //字段宽度  
  28.                     labelAlign: 'left'//标签对齐方式  
  29.                 },   
  30.                 items: [{  
  31.                     xtype: 'combo',  
  32.                     fieldLabel: '书籍列表',   
  33.                     listConfig: {  
  34.                         loadingText: '正在加载书籍信息', //加载数据时显示的提示信息  
  35.                         emptyText: '未找到匹配值', //当值不在列表时的提示信息  
  36.                         maxHeight: 60 //设置下拉列表的最大高度为60像素  
  37.                     },  
  38.                     allQuery: 'allbook', //查询全部信息的查询字符串  
  39.                     minChars: 3, //下拉列表框自动选择当前用户需要输入的最小字符数量  
  40.                     queryDelay: 300, //查询延迟时间  
  41.                     queryParam: 'searchbook',//查询的名字  
  42.                     triggerAction: 'all', //单击触发按钮显示全部数据  
  43.                     store: bookStore, //设置数据源  
  44.                     displayField: 'bookName', //定义要显示的字段  
  45.                     valueField: 'bookName', //定义字段值  
  46.                     queryMode: 'remote'//远程模式  
  47.                 }]  
  48.             });  
  49.         });  



 

bookSearchServer.jsp

 

 

[plain] view plaincopy
 
    1. <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>  
    2. <%  
    3. String path = request.getContextPath();  
    4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
    5. %>  
    6.     <%  
    7.         String bookName = request.getParameter("searchbook");  
    8.         String jav = "['java编程思想'],['java入门'],['javascript程序设计']";  
    9.         String cpp = "['c++编程思想'],['c++入门'],['c++程序设计']";  
    10.         String php = "['php编程思想'],['php入门'],['php程序设计']";  
    11.         String books = "";  
    12.           
    13.         if(bookName.equals("allbook")){  
    14.             books = "[" + jav + "," + cpp + "," +  php +  "]";  
    15.             response.getWriter().write(books);  
    16.             return;  
    17.         }else{  
    18.             bookName = bookName.substring(0, 3); //取查询字符串的前3个字符串  
    19.             if(bookName.equals("jav")){  
    20.                 books = "[" + jav + "]";  
    21.             }else if(bookName.equals("c++")){  
    22.                 books = "[" + cpp + "]";  
    23.             }else if(bookName.equals("php")){  
    24.                 books = "[" + php + "]";  
    25.             }else{  
    26.                 books = "[[没有数据'']]";  
    27.             }  
    28.             response.getWriter().write(books);  
    29.         }  
    30.      %>  
posted @ 2013-11-28 17:00  yufenghou  阅读(272)  评论(0编辑  收藏  举报