`
weipeng1986
  • 浏览: 7296 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

下拉框可选择多列图片

阅读更多
前台extjs
Ext.ns('Ext.ux');
Ext.ux.CssShowCombo = Ext.extend(Ext.form.ComboBox ,{
	array			: [],
	selectOnFocus 	: true,
	minListWidth	: 200,
	pageSize		: 50,
	autoScroll		: true,
	lazyInit      	: true,
	typeAhead		: true,
    triggerAction	: 'all',
    lazyRender		: true,
    mode			: 'remote',
    valueField		: 'name',
    displayField	: 'name',
	initComponent 	: function(){
		Ext.ux.CssShowCombo.superclass.initComponent.call(this);
	},
    store: new Ext.data.Store({
    	url 	: contextPath+'/cssShow/getData.do',
    	reader	: new Ext.data.JsonReader({
    		root: 'root',
   	 		totalProperty: 'totalCount',
		    fields: [
		        {name: 'name'},
		        {name: 'url'}
		    ]
		})
    }),
	tpl : new Ext.XTemplate(
			'<table>',
				'<tr>',
					'<tpl for=".">',
						'<td class="x-combo-list-item" height="16px" width="16px">',
							'<img  src="{url}" />',
						'</td>',
					'<tpl if="xindex % 5 === 0">',//if="xindex % 5 === 0"
					'</tr>',
					'<tr>',
					'</tpl>',
					'</tpl>',
				'</tr>',
			'</table>'
	),
	/*onRender:function(ct,position) {
		// call parent onRender
        Ext.ux.CssShowCombo.superclass.onRender.call(this, ct, position);
 
		// adjust styles
        this.wrap.applyStyles({position:'relative'});
        this.el.addClass('ux-icon-combo-input');
 
        // add div for icon
        this.icon = Ext.DomHelper.append(this.el.up('div.x-form-field-wrap'), {
            tag: 'img', style:'position:absolute;height:16px;width:16px;left:0px;'
        });
    },
 
    setIconCls: function(value) {
      var rec = this.store.query(this.valueField, this.getValue()).itemAt(0);
        if(rec) {
			this.icon.src = rec.get('url');
        }
    },
 
    setValue: function(value) {
        Ext.ux.CssShowCombo.superclass.setValue.call(this, value);
        this.setIconCls(value);
    },*/
	listeners : {
    	'beforerender' : function(thisCmp){
    		if(this.array.length<=0){
				//若要引入其他css,在数组urls配置对应url即可
	    		var urls=[
					'/resources/css/silk.css'
				];
				var content = '';
				var i = 1;
	    		var silkSuccFn = function(response,opts){
					var text = response.responseText;
					content += text;
					if(i<urls.length){
						/*Gov.Ajax.request({
							url:contextPath+urls[i],
							mskCfg:{el:this.el},
							success:silkSuccFn,
							scope:this
						});*/
						Ext.Ajax.request({
							url:contextPath+urls[i],
							success:silkSuccFn,
							scope:this
						});
					}else if(i==urls.length){
						/*Gov.Ajax.request({
					    	url	: contextPath+'/cssShow/dealCssContent.do',
							mskCfg 	: {el:this.el},
							params	: {'content':content},
							success	: function(response,opts){
								var ary = response.responseText;
								var obj = Ext.decode(ary);
								var lines = obj.lines;
								for(var i=0;i < lines.length;i++){
									this.array.push(lines[i]);
								}
					    		var param = {"array" : this.array};
					    		thisCmp.getStore().baseParams = param;
							},
							scope	: this
				    	});*/
					Ext.Ajax.request({//兼容性问题,使用Gov.Ajax.request 无法在ie中发送请求
						url	: contextPath+'/cssShow/dealCssContent.do',
						params	: {'content':content},
						success	: function(response,opts){
								var ary = response.responseText;
								var obj = Ext.decode(ary);
								var lines = obj.lines;
								for(var i=0;i < lines.length;i++){
									this.array.push(lines[i]);
								}
					    		var param = {"array" : this.array};
					    		thisCmp.getStore().baseParams = param;
							},
							scope	: this
						});
					}
					i++;
				}
	    		Gov.Ajax.request({
	    			url		: contextPath+urls[0],
	    			mskCfg 	: {el:this.el},
	    			success	: silkSuccFn,
	    			scope	: this
	    		});				
			}
    	},
    	'expand' : function(thisCmp){//水平滚动条
    		this.innerList.dom.style.overflowX="auto";
    	}
    	
    }
});
Ext.reg('cssshowcombo',Ext.ux.CssShowCombo);

看不懂可call me
0
0
分享到:
评论

相关推荐

    【C#】完美实现ComBox多列下拉框+自动完成+DataGridView自定义列

    灵活:数据源、下拉框内显示的列、列名、可搜索关键字等可自由定义 方便:可输可选/支持键盘操作/模糊过滤/自动完成匹配 标准:通过继承combobox实现,可单独使用,也可嵌入datagridview使用 感谢“随风飘散”

    可编辑的下拉框

    这是一款堪称最完美的下拉框组件,特点如:美化的并且可自定义的外观、使用简单、支持分组、下拉列表展开的方向智能化、下拉框可编辑、集成了ajax联动功能、自定义下拉列表的列数、完美的浏览器兼容性等。更多组件...

    WPF多选的下拉框

    "WPF多选的下拉框"是一个这样的自定义控件,它扩展了标准的下拉框(ComboBox)功能,允许用户进行多项选择,而不仅仅是单选。下面将详细介绍如何实现这样一个功能,以及如何利用DataTable绑定数据。 1. **多选机制*...

    layui的select下拉框插件,可以多选

    在多选模式下,用户可以选择多个选项,这在处理如角色分配、权限设置等场景时非常实用。 要创建一个多选的layui `select`下拉框,你需要在HTML中定义一个`&lt;select&gt;`元素,并使用layui的class `layui-select`来激活...

    excel 级联下拉框用法

    级联下拉框是由两个或多个相互关联的下拉列表组成,当用户在第一个下拉框中做出选择时,第二个下拉框会根据选择更新其可选值。这种联动效果可以实现多层分类的筛选,例如省份-城市-区县的逐级选择。 2. **使用数据...

    html多选下拉框 ,CheckBox的Select组件 可多选的下拉框

    在HTML中,创建一个可多选的下拉框通常涉及到`&lt;select&gt;`元素与`&lt;option&gt;`元素的组合,但为了实现多选功能,我们需要使用`&lt;input type="checkbox"&gt;`和自定义的JavaScript或者利用现代浏览器支持的Web组件技术。...

    DELPHI7 DBGRIDEH下拉框

    1. **设置Column Editor**:首先,选择要添加下拉框的列,在DBGridEh的属性编辑器中,将`EditorType`属性设置为`ceEdit`或`ceComboBox`,这将允许用户在单元格中输入文本或选择下拉列表中的值。 2. **绑定数据源**...

    C#自定义ComboBox下拉框

    例如,用户可能需要从一组类别中选择多个标签或者兴趣。 2. **多列显示**:除了简单的文本,该控件还支持在下拉列表中展示多列数据,这对于显示复杂信息非常有帮助。比如,可以同时显示产品名称、价格、供应商等...

    基于MFC实现list列表通过下拉框改变数据

    首先,我们需要理解MFC中的CListCtrl类,它是Windows ListView 控件的封装,用于显示列表项,可以是单列或多列,还可以包含图标。CComboBox类则代表Windows的下拉框控件,通常用于提供用户可选的选项。 实现这个...

    附带下拉框功能的ComboListCtrl控件

    ListCtrl通常用于显示多列数据,而下拉框则提供了可选列表和文本输入的组合。这种复合控件的设计可以提高用户界面的效率,允许用户在文本输入和预设选项之间快速切换。 ListCtrl控件属于MFC(Microsoft Foundation ...

    QTableView添加复选框,下拉框控件

    在特定的开发场景中,我们可能需要增强QTableView的功能,例如为表格中的每一行添加复选框或者下拉框控件,以提供更多的交互方式。这个过程涉及到Qt的自定义 delegate(委托)机制以及信号与槽的连接。 首先,我们...

    支持树结构的下拉框

    1. **多选功能**:不同于标准ComboBox只能单选,该控件支持多选,允许用户同时选择多个树节点,这对于需要批量选择的场景非常实用。 2. **自定义树结构**:开发者可以通过编程方式动态添加、删除和修改TreeNode,...

    PB多选下拉框

    【PB多选下拉框】是一种在PowerBuilder(PB)应用程序中实现的用户界面组件,它允许用户在下拉菜单中选择多个选项。PB90指的是PowerBuilder 9.0版本,这是一款由Sybase公司(现已被SAP收购)开发的可视化编程工具,...

    C# ComboBox(winform) 显示多列 输入自动过滤

    在C# WinForm开发中,ComboBox控件是常用的交互元素,用于展示一组可选项供用户选择。然而,标准的ComboBox通常只支持单列显示,并且其内置的过滤功能较为简单。在某些场景下,我们可能需要自定义ComboBox,使其具备...

    Android类似于QQ账号登陆下拉框效果的实现

    为了实现与QQ登录类似的多列布局,你可能需要使用GridLayout或RecyclerView,配合自定义的LayoutManager。GridLayout可以让每个单元格占据相同的大小,适合展示多个等宽等高的选项;而RecyclerView则更加灵活,可以...

    ios-下拉框.zip

    在iOS开发中,"下拉框"通常指的是用于呈现可选择项的UI组件,类似于其他平台上的下拉列表或选择器。在这个“ios-下拉框.zip”压缩包中,包含的“.DropDownList”可能是一个示例项目或者库,用于实现类似QQ应用中的...

    下拉框组件

    - **需求**:在某些情况下,为了优化显示效果,我们可能需要在下拉框中展示多列选项。 - **实现**:常规HTML的`&lt;select&gt;`元素不直接支持多列,但可以通过CSS和JavaScript模拟实现,例如使用CSS的`column-count`...

    javascript 终极美化下拉框

    在HTML中,下拉框由`&lt;select&gt;`标签定义,其中`&lt;option&gt;`标签用于列出可供选择的选项。例如: ```html &lt;option value="option1"&gt;Option 1 &lt;option value="option2"&gt;Option 2 &lt;option value="option3"&gt;Option 3 ...

    下拉框搜索多选

    例如,Select2允许用户在下拉框中输入关键词搜索选项,同时支持选择多个项。 接下来是`angular下拉框搜索多选`。Angular是一款强大的前端框架,由Google维护,用于构建单页应用(SPA)。在Angular中,可以使用ng-...

    ios标准下拉框

    数据源通常是一个数组,包含所有可供选择的选项。例如: ```swift let options = ["选项1", "选项2", "选项3"] pickerView.dataSource = self pickerView.delegate = self ``` 接着,你需要实现DataSource协议的...

Global site tag (gtag.js) - Google Analytics