您的位置:首页 > 其它

解决Ext Combobox允许用户插入及修改任意值,不用限制只能新增或修改数据表里即有字段

2010-01-17 19:49 302 查看
做这个效果是应公安局他们要求,需要一个能有下拉提示带记忆功能并且可输入的文本框,,技术差,只能想到这个东西 ,磨了好久终于勉强可以,算是摸索吧,有逻辑错误的地方或者更精简的方法希望多多提出来,谢谢

<script type="text/javascript">
Ext.onReady(function(){
//数据源
var store = new Ext.data.SimpleStore({
proxy : new Ext.data.HttpProxy({//读取远程数据的代理
url : 'TZDW.ashx'//远程地址
}),
fields : ['TZDW','Aid'], data:[['','']]

});
var cb= new Ext.ux.ComboBox({
queryParam : 'name',//查询的名字
allQuery:'allname',//查询全部信息的查询字符串
loadingText : '正在加载通知单位信息',//加载数据时显示的提示信息
minChars : 1,//下拉列表框自动选择前用户需要输入的最小字符数量
queryDelay : 1000,//查询延迟时间
triggerAction: 'all',//单击触发按钮显示全部数据
store : store,//设置数据源
displayField:'TZDW',//定义要显示的字段
valueField:'Aid', //id字段
mode: 'remote',//远程模式,
transform:'TZDW_Type',//转换<select>成为combobox,之前是用层,但层有时候会和其他JS冲突,测试过
typeAhead:true,
hiddenName:'Aid' //后台要接收的值

});

//cb.setValue("<%=TZDW.Value %>");---(赋值)修改时候把这句放出来就行~~,只需要丢一个参数进来即可
cb.on('blur',function()
{this.setValue(this.el.dom.value)}
)

});
</script>

fields : ['TZDW','Aid']后面加上这一句:, data:[['','']]是为了防止数据库没有值的情况能给他一个固定格式的空值。。才好插入你想要的值,因为后台接收是request这个下拉框的id值输入的时候有一个格式他会自动把他放进去,这样子才能获取得到,心里也没什么谱,只能说有个大体上的概念,理解不太深刻。

还有一点希望高手能指教:就是我的store我都是一个文本框用一个一般处理程序去加载他,。这样子写觉得好傻,很想优化一下他,但不知道从何下手,,思想 是有,但有点难以下手希望能得到大家的指点谢谢~~

关于多个combobox共享一个一般处理程序的参数问题:再此多谢( :) 呼呼小跑 34638822)前辈

listeners:{focus:function(){this.store.load({params:{type:'BYLA'});}}

type:后面对应参数 如果要参数也是一个变量那就要传一个object类型的变量

我一般直接在一般处理程序里面定义好switch(context.request["type"])然后去case:''不同的参数即可~~

这是前辈提供的传参例子

var pobj = new Object();
eval("pobj.metaName='"+queryForm.metaName+"';");
Ext.getCmp(queryForm.metaCode + '_grid').getStore().load(
{
params: pobj
});

eval(。。。。。)可以通过这样的方式,添加任意需求的参数表



心得共享出来希望能帮助别人

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐