小电鼠
2012-08-20 15:40
采纳率: 0%
浏览 258
已采纳

ext4 二级级联问题

   Ext.onReady(function()
    {
        var dat=[['2012年8月11日','200'],
                 ['2012年8月12日','300'],
                 ['2012年8月16日','122']];   
        var store=new Ext.data.SimpleStore({data:dat,
            fields:["num","shuju"]}); 
        var data=[['1','育新小区'],['2','富力桃园']];
        var data2= new Array();   
             data2[0] = [['1','1号楼'],['2','2号楼']];   
             data2[1] = [['3','3号楼'],['4','4号楼']];
        var store1=new Ext.data.SimpleStore({
                data:data,fields:['id','city']});
        listeners:{
             select:function(record,index){
             loadData(data2[record.data.id]);}};
        var store2=new Ext.data.SimpleStore({
             data:data2[record.data.id],
                fields:['wuzi','jiahao']});
        var grid=new Ext.grid.GridPanel({
                renderTo:Ext.getBody(),
                height:200,width:370,
                tbar: [{xtype:'combo',valueField:'id',
                   displayField:'city',store:store1},
                   {xtype:'combo',valueField:'wuzi',
                   displayField:'jiahao',store:store2}],
                columns:[{header:"日期",flex:1,
                       dataIndex:"num"},
                   {header:"数据",flex:1,
                       dataIndex:"shuju"}],
                    store:store});
        });
不知道思路上有没有问题,如果没问题那代码需要修改哪里才能运行呢?现在是什么都显示不出来,求高手们啊
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • iteye_7115 2012-08-20 16:55
    已采纳

    [code="java"] <br> Ext.onReady(function() {<br><br> var dat=[[&#39;2012年8月11日&#39;,&#39;200&#39;],<br><br> [&#39;2012年8月12日&#39;,&#39;300&#39;],<br><br> [&#39;2012年8月16日&#39;,&#39;122&#39;]];<br><br> var store=new Ext.data.SimpleStore({data:dat, fields:[&quot;num&quot;,&quot;shuju&quot;]});<br><br> //<br><br> var data=[[&#39;1&#39;,&#39;育新小区&#39;],[&#39;2&#39;,&#39;富力桃园&#39;]];<br><br> var data2= new Array();<br><br> data2[0] = [[&#39;1&#39;,&#39;1号楼&#39;],[&#39;2&#39;,&#39;2号楼&#39;]];<br><br> data2[1] = [[&#39;3&#39;,&#39;3号楼&#39;],[&#39;4&#39;,&#39;4号楼&#39;]];<br><br> var store1=new Ext.data.SimpleStore({data:data,fields:[&#39;id&#39;,&#39;city&#39;]});<br><br> var store2=new Ext.data.SimpleStore({<br><br> data:[],<br><br> fields:[&#39;wuzi&#39;,&#39;jiahao&#39;]});<br><br> var grid=new Ext.grid.GridPanel({<br><br> renderTo:Ext.getBody(),<br><br> height:200,width:370,<br><br> tbar: [{<br> xtype:&#39;combo&#39;,<br> mode:&#39;local&#39;,//mode设置为local,这样comobox才能知道数据已经加载到本地<br> triggerAction:&#39;all&#39;,//默认为&#39;query&#39;,会出现autocomplete现象<br> valueField:&#39;id&#39;, <br> displayField:&#39;city&#39;,<br> store:store1,<br> listeners:{<br> &#39;select&#39; : function(cb){<br> var selectedId = cb.getValue();<br> store2.loadData(data2[selectedId-1]);<br> }<br> }<br> },<br><br> {xtype:&#39;combo&#39;,<br> mode:&#39;local&#39;,<br> triggerAction:&#39;all&#39;,<br> valueField:&#39;wuzi&#39;, <br> displayField:&#39;jiahao&#39;,<br> store:store2<br> }],<br><br> columns:[{header:&quot;日期&quot;,flex:1, dataIndex:&quot;num&quot;},<br><br> {header:&quot;数据&quot;,flex:1, dataIndex:&quot;shuju&quot;}], store:store});<br><br> }); <br> [/code]

    这样就可以了,其中
    mode:'local',//mode设置为local,这样comobox才能知道数据已经加载到本地
    triggerAction:'all',//默认为'query',会出现autocomplete现象
    这两个参数的设置要注意些,不然页面不出来数据的

    对于级联的实现就是: [b]store.loadData(..)[/b] 即可

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • iteye_7115 2012-08-20 15:51

    listeners:{

    select:function(record,index){loadData(data2[record.data.id]);}};

    你这段代码怎么孤单单的,有错误!!

    评论
    解决 无用
    打赏 举报
  • FangXingXing007 2012-08-20 16:52

    loadData之前先获取子Combo的Component,然后用子Component调用loadData方法或getStore之后在调用loadData方法

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题