打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
extjs 三级联动 编辑界面 富默认值、重新选择
Ext.define('EditProblem',{
 extend:'CommonModule',
 config:{
  Store:null,
  Date:null 
 },
 constructor:function(cfg){
  this.initConfig(cfg);
 },
 init:function(){
  var me=this;
  return me._createPanel();
 },
  
 createEditForm:function(){
  var me=this;
  me.createCategoryStore();           //调用store()
  me.createBigStore();
  me.createLitterStore();
  
  var editForm = Ext.create('Ext.form.Panel',{
  api:{
    submit: DirectService.update
   },
   defaultType: 'textfield',
   items: [{     name:'category',
     hiddenName:'category',
     width: 230,
     xtype : 'combobox',
     displayField : 'name',  //显示的字段
     valueField : 'code',      //背后的值
     queryMode : 'local',     //注意是本地,最好写local
     editable:false,
     fieldLabel:'问题类别',
     allowBlank: false,
     blankText:'问题类别不能为空!',
     store : me.categoryStore,     // 调用store
     value:me.getProblemDate().category,   //富默认值
     listeners:{
      select:function(itemSelect){
       editForm.getForm().findField('type1').setValue('');        //孩子设置为空
       editForm.getForm().findField("type1").clearValue();       //清除孩子store
       editForm.getForm().findField("type2").clearValue();       //清除孙子store
       me.bigTypeStore.load({params:{parentId:editForm.getForm().findField('category').getValue(),level:2}});      //load 孩子的store
      }
     }   },{
    xtype: 'fieldcontainer',
    layout: 'hbox',
    defaultType: 'textfield',
    items: [{
     name:'type1',
     hiddenName:'type1',
     width: 230,
     xtype : 'combobox',
     displayField : 'name',
     valueField : 'code',
     queryMode : 'local',
     editable:false,
     fieldLabel:'大类',
     allowBlank: false,
     blankText:'大类不能为空!',
     store :me.bigTypeStore,                     //调用孩子的store
     value:me.getProblemDate().type1,     //富默认值给孩子
     listeners:{
      select:function(itemSelect){
       editForm.getForm().findField('type2').setValue('');       // 给孙子清空选择
       editForm.getForm().findField("type2").clearValue();    //给孙子清空内容
       me.litterTypeStore.load({params:{parentId:editForm.getForm().findField('type1').getValue(),level:3}});     //load   孙子的store
      }
     }
    },{
     name:'type2',
     hiddenName:'type2',
     width: 230,
     xtype : 'combobox',
     displayField : 'name',
     valueField : 'code',
     queryMode : 'local',
     editable:false,
     fieldLabel:'小类',
     allowBlank: false,
     blankText:'小类不能为空!',
     store : me.litterTypeStore,       //调用孙子的store
     value:me.getProblemDate().type2    // 给孙子富默认值
    }]
     });
  me.editForm=editForm;
  return editForm;
 },
 
 
 createCategoryStore:function(){
  var me=this;
  var categoryStore  = Ext.create("Ext.data.Store", {
   fields : ['code', 'name','parent_code','level_', 'time_limit'],
   autoLoad : true,
   proxy : {
    reader : {
     root : 'records'
    },
    type : 'direct',
    directFn:'DirectProblemService.listProblemType'
   }
  });
  categoryStore.on('beforeload',function(store,options){
   store.proxy.extraParams.parentId =0;
   store.proxy.extraParams.level=1;
  });
  me.categoryStore=categoryStore;
 },
 
 createBigStore:function(){
  var me=this;
  var bigTypeStore  = Ext.create("Ext.data.Store", {
   fields : ['code', 'name','parent_code','level_','time_limit'],
   proxy : {
    reader : {
     root : 'records'
    },
    type : 'direct',
    directFn:'DirectProblemService.listProblemType'
   }
  });
  bigTypeStore.load({params:{parentId:me.getProblemDate().category,level:2}});  //注意孩子load store一定要这样   me.getProblemDate().category (这个是爷爷的值) 这个是传过来的值
  me.bigTypeStore=bigTypeStore;
 },
 
 createLitterStore:function(){
  var me=this;
  var litterTypeStore  = Ext.create("Ext.data.Store", {
   fields : ['code', 'name','parent_code','level_','time_limit'],
   proxy : {
    reader : {
     root : 'records'
    },
    type : 'direct',
    directFn:'DirectProblemService.listProblemType'
   }
  });
  litterTypeStore.load({params:{parentId:me.getProblemDate().type1,level:3}});//注意孙子load store一定要这样  me.getProblemDate().type1 (这个是孩子的值) 这个是传过来的值

  me.litterTypeStore=litterTypeStore;
 },
 
});
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
转载
ExtJs中一个完整GridPanel实例(转)
extjs 提交表单(注意Form必须的规定) , 取JSP返回值 , 转换JSON数据为...
Extjs和struts2 做的上传
局部刷新树 Ext
Extjs4中up()和down()的用法(1)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服