问题描述
varcm=newExt.grid.ColumnModel([{header:'名称',dataIndex:'name',sortable:true,editor:newExt.grid.GridEditor(newExt.form.TextField({allowBlank:false}))},{header:'名称关联',dataIndex:'nameabout',sortable:true,editor:newExt.form.ComboBox({id:'cpy',typeAhead:true,lazyRender:true,hiddenName:'',store:storepy,//引入dsdisplayField:'mcgl',//值editable:false,mode:'local',triggerAction:'all'})};名称是TextField,名称关联是ComboBox,如想在输入名称的时候如“学校”,我想在ComboBox里面显示出“学校1“,和”学校2”。想在输入名称的时候如“大学”,我想在ComboBox里面显示出“大学1“,和”大学2”。这效果怎么做谢谢
解决方案
解决方案二:
newExt.form.ComboBox({allowBlank:false,allowNegative:false,triggerAction:'all',displayField:'text',valueField:'v',id:'test',store:newExt.data.Store({autoLoad:true,proxy:newExt.data.MemoryProxy({rows:[{text:'全部',v:'1'},{text:'学校1',v:'2'},{text:'学校2',v:'3'},{text:'...',v:'4'}]}),reader:newExt.data.JsonReader({root:'rows',id:'v',remoteSort:false},[{name:'text'},{name:'v',type:'int'}]),listeners:{load:function(){Ext.getCmp('test').setValue(2);}}}),editable:false})
解决方案三:
可能我表述的不清楚对于“学校1“,和”学校2”等信息是动态的实时到数据库里面查询到的,不是写死的。怎么获取ext里grid中某行的ComboBox并动态改变ComboBox中Store的值。谢谢
解决方案四:
动态啊,那么你输入的时候触发的事件里面来动态的查询数据,以及赋值
解决方案五:
是啊但是我不知道怎么获取我修改那行对应的ComboBox。functionafterEdit(e){varrr=e.record;//获取被修改的行//alert(e.record.fields);//alert(grid.getColumnModel().getDataIndex(e.column))//alert(grid.getStore().getAt(e.row));//alert(grid.getColumnModel().getColumnById(e.column).editor)}上面的都获取不到那行对应的ComboBox。不知道应该怎么写
解决方案六:
Ext的comboBox本来就提供了异步查询的机制,不需要自己写触发、赋值操作
解决方案七:
vards=newExt.data.Store({//这个dataStore是为comboBox提供的proxy:newExt.data.HttpProxy({url:'xxx.do?...'}),//这里是查询的后台urlreader:newExt.data.JsonReader({...})//这里指定查询返回的数据格式});cm=newExt.grid.ColumnModel([{header:"name",dataIndex:"name",editor:newExt.form.ComboBox({store:ds,//上面提到的dsdisplayField:'name',//显示查询返回的数据中的哪个字段typeAhead:false,//不要显示缓冲数据loadingText:'Searching...',//查询时comboBox的提示width:126,listWidth:159,//下拉列表的宽度pageSize:15,//每页显示多少数据(分页需要自己后台实现)minChars:2,//输入多少个字符后开始查询queryParam:'name',//输入的数据作为查询的哪个参数,比如这里指定是'name',在编辑时输入'test',提交到后台就是xxx.do?name=testqueryDelay:200//输入规定的字符数后,延迟多久开始查询})}]);grid=newExt.grid.EditorGridPanel({...});
解决方案八:
靠,格式乱得一塌糊涂
解决方案九:
Ext的comboBox本来就提供了异步查询的机制,不需要自己写触发、赋值操作,问题是,我现在不是修改comboBox里面的值,是修改TextField的值,让他触发comboBox里面的值改变,怎么做到,谢谢
解决方案十:
该回复于2009-07-06 15:37:02被版主删除
解决方案十一:
我提供的代码实际上就是根据TextField的值,触发comboBox里面的值改变,你试试就知道了
解决方案十二:
我也遇到和楼主一样的问题的期待解决中楼主怎么做的呢???
解决方案十三:
vardeptname=Ext.get("deptdata").setValue("设置的内容值");
我是这么解决的
解决方案十四:
想修改就combobox.proxy.store.conn.url=newUrl;combobox.proxy.store.load();怎么一来就都是这种问题哦哈哈
解决方案十五:
该回复于2010-08-17 16:33:49被版主删除
解决方案:
引用13楼superwwt的回复:
想修改就combobox.proxy.store.conn.url=newUrl;combobox.proxy.store.load();怎么一来就都是这种问题哦哈哈
对用这种方式加载。。你要获得在comboBox里面输入的值。。。varvipStore=newExt.data.Store({proxy:newExt.data.HttpProxy({url:"vip_realtimeVipName.action?vipID=cocobra"}),reader:newExt.data.JsonReader({totalProperty:"totalProperty",root:"root",fields:["memberName","memberEmail"]})});vipStore.load();//===========xtype:"combo",store:vipStore,id:"vipID",name:"vipName",emptyText:"请输入会员账号",width:"150",mode:'local',//forceSelection:true,valueField:'memberid',displayField:'memberName',listeners:{render:function(f){f.el.on('keyup',function(e){f.setValue(f.getRawValue());//f.getRawValue()获得comBox手动输入值//从服务器端加载相关数据vipStore.proxy=newExt.data.HttpProxy({url:"vip_realtimeVipName.action?vipID="+f.getRawValue()});vipStore.load();});},
解决方案:
你用了编辑后的事件之后,你就直接去获取ComboBox文本框的值就好了。。然后在通过它去服务器查询出来,再重新加载到ComboBox里面。。。
解决方案:
谢谢~~这个问题我解决了。。
解决方案:
这个东西我也遇到了,弄得接近崩溃啊,不管用什么方式都获得不了combobox中的value值,二级联动就更不用说了,崩溃啊vardata4PostingStatus=[["A","MB1A"],["B","MB1B"],["C","MB1C"]];varstore4PostingStatus=newExt.data.SimpleStore({fields:['value','name'],data:data4PostingStatus});postingStatus=newExt.form.ComboBox({xtype:"combo",store:store4PostingStatus,displayField:'name',mode:'local',triggerAction:'all',selectOnFocus:true,editable:true,typeAhead:true,forceSelection:true,emptyText:'请选择...',valueField:'value',applyTo:'moveTypeSapCode',id:'moveTypeSapCode',tpl:'<tplfor="."><divclass="x-combo-list-item">{name:htmlEncode}</div></tpl>',listeners:{select:function(){Ext.get("postingStatus").setValue(valueField);vara=Ext.getCmp("postingStatus").getValue();alert(a);
解决方案:
这个东西我也遇到了,弄得接近崩溃啊,不管用什么方式都获得不了combobox中的value值,二级联动就更不用说了,崩溃啊vardata4PostingStatus=[["A","MB1A"],["B","MB1B"],["C","MB1C"]];varstore4PostingStatus=newExt.data.SimpleStore({fields:['value','name'],data:data4PostingStatus});postingStatus=newExt.form.ComboBox({xtype:"combo",store:store4PostingStatus,displayField:'name',mode:'local',triggerAction:'all',selectOnFocus:true,editable:true,typeAhead:true,forceSelection:true,emptyText:'请选择...',valueField:'value',applyTo:'moveTypeSapCode',id:'moveTypeSapCode',tpl:'<tplfor="."><divclass="x-combo-list-item">{name:htmlEncode}</div></tpl>',listeners:{select:function(){Ext.get("postingStatus").setValue(valueField);vara=Ext.getCmp("postingStatus").getValue();alert(a);
解决方案:
同问,最近也用Ext用到类似的问题,不知道如何解决?我想知道的是:如何在grid中获取选择行的某个单元格的ComboBox组件对象?
解决方案:
动态?嗯?
解决方案:
combo=newExt.form.ComboBox({fieldLabel:'图表展示类型',id:'combo',triggerAction:'all',width:110,store:newExt.data.SimpleStore({fields:['value','text'],data:[['1','柱状图'],['2','比例图'],['3','趋势图']]}),displayField:'text',valueField:'value',mode:'local',emptyText:'请选择'combo.on("select",function(comboBox){if(comboBox.getValue()==1){}elseif(comboBox.getValue()==2){}else{}});
解决方案:
给文本框一个焦点离开事件,根据输入的数据,检索出不同的下拉框的值,取下拉框的Store,重新Load一下取到的数据,这样应该是可以的。