2
回答
Extjs.gridPanel 如何获取所有checkbox的值.并向后台提交.
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
直接上图,


功能要求: 可以根据已经选择的项去重后做为小区列表来创建新的测试任务

代码如下:


var store = Ext.data.StoreManager.lookup('TestResult');
 //创建多选
var selModel = Ext.create('Ext.selection.CheckboxModel');
var cmboxbsc=new Ext.form.ComboBox
       (
       {
       	//定义一个智能感应的ComboBox
         id:'cmboxbsc',
         title:'bscName',
         //加载数据源
         store:store,
         //从本地加载数据(智能感应效果)
         mode:"local",
         //显示字段类似DropDownlist中的DataTextField 
         displayField:'bscname',
         //类似DropDownlist中的DataValueField  
         valueField:'bscname',
         width:120,
         //不允许为空
         allowBlank:false,
         //默认值
        emptyText:'输入bsc名称搜索...',
        //当为空的时候提示
        blankText:'请输入bsc名称...'
       }
       );
       
var cmboxcell=new Ext.form.ComboBox
       (
       {
       	//暂时不知道类型字段,先以cell代替!!!
       	//定义一个智能感应的ComboBox
         id:'cmboxcell',
         title:'cellname',
         //加载数据源
         store:store,
         //从本地加载数据(智能感应效果)
         mode:"local",
         //显示字段类似DropDownlist中的DataTextField 
         displayField:'cellname',
         //类似DropDownlist中的DataValueField  
         valueField:'cellname',
         width:120,
         //不允许为空
         allowBlank:false,
         //默认值
        emptyText:'输入CellName进行搜索...',
        //当为空的时候提示
        blankText:'请输入CellName...'
       }
       );




Ext.define('IMT.view.ImtWelcomeTestResult', {
	extend: 'Ext.grid.Panel',
	id:'tesrresultgrid',
	alias: 'widget.imtwelcometestresult',
	loadMask: {msg:'加载数据中,请等待......'},//显示等待数据加载(loading)图标
	store:store,
	selModel:selModel,
	viewConfig: {trackOver: false},
	//cm:cms,//列名称
	//sm: new Ext.grid.CheckboxSelectionModel(),//要显示多选框列必加此项
	//定义一个toolbar
  tbar:[
  	//定义一个搜索框
            //cmboxbsc,
              //'-',
            cmboxcell,
            	'-',
            {
             xtype:'button',
             cls: 'x-btn-text-icon details',
             text:"搜索",
             listeners:{click:function () {
             	//Ext.getCmp("searchfield").getValue()得到Textfield的值
              //过滤条件为角色名称(RoleName)来搜索匹配的信息,
              //filter方法第一个参数:过滤的字段名称,第二个参数要匹配的信息,
              //第三个参数true表示从开始位置开始搜索,第四个参数false表示不区分大小写
              console.log('------------------------------'+Ext.getCmp("cmboxcell").getValue());
              	if(Ext.getCmp("cmboxcell").getValue() == null){
              	 console.log('---查询所有数据---');
              	 this.initComponent;
              	}else{
		              //store.filter('bscname',Ext.getCmp("cmboxbsc").getValue(),false,false);
		              store.filter('cellname',Ext.getCmp("cmboxcell").getValue(),false,false);
            		}
            		
             		}
             	}
             },
             {
             	xtype:'button',
             	text:"创建任务",
             	listeners:{click:function(){
             		 selModel.getValue();
             		//Ext.Msg.alert('提示', '请选择要删除的数据!!');
//             			var rows = imtwelcometestresult.getSelectionModel().getSelection();
//					        if (rows.length == 0) {
//					                Ext.Msg.alert('提示', '请选择要删除的数据!!');
//					        }
					       }
             		}
             		
             	}         	 
  ],

  columns: [
  {
		text: 'bscname',
		width: 65,
		dataIndex: 'bscname'
	},
	{
		text: 'cellname',
		width: 70,
		dataIndex: 'cellname'
	},
	{
		text: '天馈一(三阶)',
		width: 70,
		dataIndex: 'if3ch1',
		renderer: function(value, p, record) {
			if (value != 0) {
				if (value >= - 47) {
					return '>=-47 dBm';
				} else {
					return value + ' dBm';
				}
			}
			return '-';
		}
	},
	{
		text: '天馈二(三阶)',
		width: 75,
		dataIndex: 'if3ch2',
		renderer: function(value, p, record) {
			if (value != 0) {
				if (value >= - 47) {
					return '>=-47 dBm';
				} else {
					return value + ' dBm';
				}
			}
			return '-';
		}
	},
	{
		text: '天馈一(五阶)',
		width: 75,
		dataIndex: 'if5ch1',
		renderer: function(value, p, record) {
			if (value != 0) {
				if (value >= - 47) {
					return '>=-47 dBm';
				} else {
					return value + ' dBm';
				}
			}
			return '-';
		}
	},
	{
		text: '天馈二(五阶)',
		width: 75,
		dataIndex: 'if5ch2',
		renderer: function(value, p, record) {
			if (value != 0) {
				if (value >= - 47) {
					return '>=-47 dBm';
				} else {
					return value + ' dBm';
				}
			}
			return '-';
		}
	},
	{
		text: '被测频点',
		width: 75,
		dataIndex: 'arfcnim'
	},
	{
		text: '底噪',
		width: 60,
		dataIndex: 'noise',
		renderer: function(value, p, record) {
			if (value == '') return '未知';
			return value + ' dBm';
		}
	},
	{
		text: '忙时干扰值',
		width: 65,
		dataIndex: 'ifmedianbusy',
		renderer: function(value, p, record) {
			if (value == '') return '未知';
			return value + ' dBm';
		}
	},
	{
		text: '说明',
		width: 200,
		dataIndex: 'note'
	},
	{
		text: '测试时间',
		width: 120,
		dataIndex: 'ifvaluetime',
		renderer: function(value, p, record) {
			var date = new Date();
			date.setTime(value * 1000);
			return Ext.Date.format(date, 'Y-m-d H:i:s');
		}
	}],


	//自带分页工具条
	bbar: Ext.create('Ext.PagingToolbar', {
		store: store,
		displayInfo: true,
		displayMsg: '任务 {0} - {1} of {2}',
		emptyMsg: "没有任务",
	}),

	
	initComponent: function() {
		console.log('IMT.view.ImtWelcomeTestResult: initializing.');
    this.store.loadPage(1);
		this.callParent();
	}
});
 
接下来的问题就是,当我点击创建任务按钮的时候,要获取所有的checkbox的值,判断是否有选中的值,然后创建一个新的任务.
请各位道友看下,不胜感激.
举报
简单同学
发帖于5年前 2回/8K+阅
共有2个答案 最后回答: 5年前
自己先顶一个.

//创建多选

var selModel = Ext.create('Ext.selection.CheckboxModel');
这里里多选框的声明,

62行:  selModel:selModel,
这里是把多选框引用到面板中

 {
095                 xtype:'button',
096                 text:"创建任务",
097                 listeners:{click:function(){
098                      selModel.getValue();
099                     //Ext.Msg.alert('提示', '请选择要删除的数据!!');
100 //                      var rows = imtwelcometestresult.getSelectionModel().getSelection();
101 //                          if (rows.length == 0) {
102 //                                  Ext.Msg.alert('提示', '请选择要删除的数据!!');
103 //                          }
104                            }
105                     }
106                      
107                 } 



我要做的就是当点击'创建任务'按钮时,获取所有的复选框,然后进行判断,再传值.


顶部