Extjs combo远程加载数据

Extjs 使用combo来请求数据:
在运用该方法的时候可以会遇到下面的问题:
1、展示的时候数据不能够展示出来解决的方法为:
  • 类当中的属性名称定义错误;
  • reader书写的文字不正确;
  • fields是否书写错误
代码示例:
前台代码示例:
(function(){
    Ext.onReady(function(){
        Ext.regModel('BookInfo',{
            fields:[{
                name:'bookName'
            }]            
        });        
        var bookStore = Ext.create('Ext.data.Store',{
            model:'BookInfo',
            proxy:{
                type:'ajax',
                url:'./learnExtjs/dataJSp/bookSearchServer.jsp',
                reader:new Ext.data.ArrayReader({
                    model:'BookInfo'
                })
            }
        });
        //下来列表显示不出来的原因:1、类当中的属性名称定义错误;2、reader书写的文字不正确;3、fields是否书写错误
        //返回的数据格式是否正确
        Ext.create('Ext.form.Panel',{
            title:"Ext.form.field.ComboBox远程数据示例",
            frame:true,
            height:100,
            width:270,
            renderTo:Ext.getBody(),
            bodyPadding:5,
            defaults:{
                labelSeparator:':',
                labelWidth:70,
                width:200,
                labelAlign:'left'
            },
            items:[{
                xtype:'combobox',
                 listWidth : 240,
                 id:'com',
                fieldLabel:'书籍列表',
                listConfig:{
                    loadingText:'正在加载书籍信息',//加载数据的提示信息
                    emptyText:'未找到匹配值'//当值不再列表时的提示信息;
                },
                allQuery:'allbook',//查询全部信息的查询字符串;
            //    minChars:3,//下拉列表框自动选择前用户需要输入的最小字符数量
                queryDelay:300,//查询延迟时间
                queryParam:'searchbook',//查询参数
                triggerAction:'all',//单击触发按钮显示全部数据
                store:bookStore,//设置数据源
                displayField:'bookName',
                valueField:'bookName'
            //    queryNode:'remote'//数据加载模式远程加载
            }]
        });
    });
        
      var store = Ext.create('Ext.data.Store', {
        fields : ['cid''cname'],
        data : [{
                cid : '1',
                cname : '南京市'
            }, {
                cid : '2',
                cname : '无锡市'
            }, {
                cid : '3',
                cname : '苏州市'
        }]
    });
    var comboBox = new Ext.form.ComboBox({
        renderTo : Ext.getBody(),
        triggerAction : 'all',
        store : store,
        displayField : 'cname',
        valueField : 'cid',
        queryMode : 'local',
        emptyText : '请选择城市'
    });
    var btn = new Ext.button.Button({
        text : '列表框的值',
        renderTo : Ext.getBody(),
        handler : function() {
        Ext.Msg.alert("值""实际值:" + comboBox.getValue()
        + ",显示值:" + comboBox.getRawValue());
        }
    });
})();
jsp代码示例:
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%
    String bookName = request.getParameter("searchbook");
    String java = "['java编程思想'],['java入门'],['javascript程序设计']";
    String cpp = "['c++编程思想'],['c++入门'],['C++程序设计']";
    String php = "['php程序设计'],['php入门'],['php从入门到精通']";
    String books = "";
    if(bookName.equals("allbook")){
        books = "["+java+","+cpp+"]";
        response.getWriter().write(books);
        return ;
    }else{
        bookName = bookName.substring(0,3);
        System.out.println(bookName);
        if(bookName.equals("jav")){
            books = "[{\"bookName\":\"java编程思想\"}]";
        }else if(bookName.equals("c++")){
            books = "["+cpp+"]";
        }else if(bookName.equals("php")){
            books = "["+php+"]";
        }else{
            books = "[['没有数据']]";
        }
        response.getWriter().write(books);
    }
%>





posted @ 2014-07-30 11:52  thero  阅读(887)  评论(0编辑  收藏  举报