ExtJS问题求助

sjyingwei 2012-12-19 02:42:34
ExtJS如何自动加载数据库中与输入框中数据相关的数据
具体Person对象有id,name,sex,address等属性,如何在前台输入框里输入他的名字的一部分就能自动加载显示数据库中所有的与之相关的数据的名字显示在下拉框列表里?如:输入“李”所有名字符合“%李%”都加载出来,且要是自动加载
...全文
170 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjyingwei 2012-12-26
  • 打赏
  • 举报
回复
你怎么知道我没写,不那个啥,就别那个啥!看着不爽啊,虽然俺是个Ext的菜鸟,但俺更是个开发人员!什么都不写,不会就上网求助,等别人写好了的,我岂不是早就饿死了!
madStone_l 2012-12-20
  • 打赏
  • 举报
回复
楼主太那个啥了,自己什么代码都不写。。。。 亲,你没自己尝试写吧。
鸡肋啊 2012-12-20
  • 打赏
  • 举报
回复
思路基本是这样:定义一个下拉框控件,设置为可输入的;然后监听它的相关事件;然后在事件处理函数里获取输入内容,传递给store,重载store即可
jeff_jiang 2012-12-19
  • 打赏
  • 举报
回复
引用 1 楼 q2979978 的回复:
JavaScript code?12345678910111213141516171819202122232425262728293031323334353637383940Ext.regModel('BaseData', { fields: [ {name: 'id', type: 'string'}, {name: 'labe……
大概就是这样,我现在无法测试,建议再修改一下change事件,因为每次改变值就加载的话一个一个字输入就加载很多次了。建议使用setTimeout经过多少时间之后值不变再对store进行load操作
jeff_jiang 2012-12-19
  • 打赏
  • 举报
回复
Ext.regModel('BaseData', {
    fields: [
		{name: 'id',     type: 'string'},
		{name: 'label',     type: 'string'},
		{name: 'value',     type: 'string'}
    ]
});

Ext.define('Ext.components.BaseDataComboBox',{
	extend : 'Ext.form.field.ComboBox',
	xtype : 'baseDataComboBox',
	typeAhead : true,
	editable : true,
	displayField : "label",
	valueField : "value",
	queryMode : 'local',
	initComponent : function(){
		this.store = Ext.create('Ext.data.Store', {
		    model: 'BaseData',
			proxy : {
				type : 'ajax',
				actionMethods : {
					read : 'POST'
				},
				url : '***************',
				extraParams : {
					key : this.getValue()
				}
			},
			autoLoad : false
		});
      this.listeners = {
			change : function(me){
				me.getStore().load();
			}
		};

		this.callParent(arguments);
	}
});

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧