- 浏览: 262678 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
小清新雪仔_:
报错The import org.springframewor ...
Spring Security oAuth学习之Hello World -
hrybird:
http://www.dolit.cn/portfolios/ ...
LightVOD P2P点播系统完全开源 -
xiaoxiao_qiang:
感谢,正在学习oAuth,有机会一起交流
Spring Security oAuth学习之Hello World -
thinkgem:
你好,lightvodcode.zip现在不能下了,能否发我一 ...
LightVOD P2P点播系统完全开源 -
gdw520:
<div style="text-align: ...
如何实现javascript截图 jQuery插件imgAreaSelect使用详解
为感谢论坛发布
http://blog.csdn.net/edisundong/archive/2008/01/25/2065379.aspx
说明:
感谢飞天色鼠和javaeye论坛的sp2,其实是改了飞天色鼠的代码。sp2给了很大帮助,感谢!
演示效果:
调用代码如下:
var auto_field=new Ext.form.MultiSelectField();
if(contextlist==null)
{
auto_field.contextArray=
[
['1','一'],
['2','二'],
['3','三']
]
}
else
{
auto_field.contextArray=contextlist;
}
auto_field.fieldLabel=text;
auto_field.id=id;
auto_field.name=id;
return auto_field;
代码如下:
Ext.form.MultiSelectField = Ext.extend(Ext.form.TriggerField, {
readOnly : true ,
defaultAutoCreate : {tag: "input", type: "text", size: "24", autocomplete: "off"},
displayField : 'text',
contextArray: undefined, //必须满足每行至少两列,第一、二列分别为[value,text]
valueField : undefined,
hiddenName : undefined,
listWidth : undefined,
minListWidth : 50,
layerHeight : undefined,
minLayerHeight : 60,
value : undefined,
baseParams : {},
checkpanel:undefined,
initComponent : function()
{
Ext.form.MultiSelectField.superclass.initComponent.call(this);
this.addEvents
(
'select',
'expand',
'collapse',
'beforeselect'
);
if(this.transform)
{
this.allowDomMove = false;
var s = Ext.getDom(this.transform);
if(!this.hiddenName)
{
this.hiddenName = s.name;
}
s.name = Ext.id();
if(!this.lazyRender)
{
this.target = true;
this.el = Ext.DomHelper.insertBefore(s, this.autoCreate || this.defaultAutoCreate);
Ext.removeNode(s);
this.render(this.el.parentNode);
}else{
Ext.removeNode(s);
}
}
},
onRender : function(ct, position)
{
Ext.form.MultiSelectField.superclass.onRender.call(this, ct, position);
if(this.hiddenName)
{
this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id: (this.hiddenId||this.hiddenName)},
'before', true);
this.hiddenField.value =
this.hiddenValue !== undefined ? this.hiddenValue :
this.value !== undefined ? this.value : '';
this.el.dom.removeAttribute('name');
}
if(Ext.isGecko){
this.el.dom.setAttribute('autocomplete', 'off');
}
this.initList();
},
initList : function()
{
if(!this.list)
{
var cls = 'x-multiselectfield-list';
this.list = new Ext.Layer
({
shadow: this.shadow, cls: [cls, this.listClass].join(' '), constrain:false
});
var lw = this.listWidth || Math.max(this.wrap.getWidth(), this.minListWidth);
this.list.setWidth(lw);
this.list.swallowEvent('mousewheel');
this.innerList = this.list.createChild({cls:cls+'-inner'});
this.innerList.setWidth(lw - this.list.getFrameWidth('lr'));
this.innerList.setHeight(this.layerHeight || this.minLayerHeight);
if(!this.checkpanel)
{
this.checkpanel = this.CheckPanel(this.innerList);
}
this.checkpanel.render();
}
},
onSelect:function(id,text,checked)
{
this.setValue(id,text,checked);
},
CheckPanel:function(el)
{
var checkpanel = new Ext.Panel
({
el:el,
autoScroll:true
});
var multiselectField = this;
if(typeof this.contextArray != 'undefined')
{
for(var i=0;i {
var contArry=this.contextArray[i];
var auto_field=new Ext.form.Checkbox
({
boxLabel:contArry[1],
id:contArry[0],
name:contArry[0],
cls :'x-multiselectfield-list'
});
auto_field.on('check',function(auto_field)
{
multiselectField.onSelect(auto_field.id,auto_field.boxLabel,auto_field.checked);
});
checkpanel.add(auto_field);
}
}
return checkpanel
},
getValue : function()
{
if(typeof this.value != 'undefined')
{
return this.value;
}
else
{
return Ext.form.MultiSelectField.superclass.getValue.call(this);
}
},
setValue : function(id,text,ischecked)
{
var text = text;
var value = id;
var return_text_string;
var return_value_string;
var text_temp = Ext.form.MultiSelectField.superclass.getValue.call(this);
var ids_temp = typeof this.value != 'undefined' ? this.value : '';
var text_arrtemp = text_temp.split(",");
var ID_arrtemp = ids_temp.split(",");
if(ischecked)
{
Array.add(text_arrtemp,text);
Array.add(ID_arrtemp,value);
}
else
{
Array.remove(text_arrtemp,text);
Array.remove(ID_arrtemp,value);
}
return_text_string = text_arrtemp.toString();
return_value_string = ID_arrtemp.toString();
var first_text_str = return_text_string.substr(0,1);
var first_value_str = return_value_string.substr(0,1);
if(first_text_str==",")
{
return_text_string=return_text_string.substr(1);
}
if(first_value_str==",")
{
return_value_string=return_value_string.substr(1);
}
Ext.form.MultiSelectField.superclass.setValue.call(this, return_text_string);
this.value = return_value_string;
if(this.hiddenField)
{
this.hiddenField.value = return_value_string;
}
},
onDestroy : function()
{
if(this.list)
{
this.list.destroy();
}
Ext.form.MultiSelectField.superclass.onDestroy.call(this);
},
collapseIf : function(e)
{
if(!e.within(this.wrap) && !e.within(this.list))
{
this.collapse();
}
},
expand : function()
{
if(this.isExpanded() || !this.hasFocus)
{
return;
}
this.list.alignTo(this.wrap, this.listAlign);
this.list.show();
Ext.getDoc().on('mousewheel', this.collapseIf, this);
Ext.getDoc().on('mousedown', this.collapseIf, this);
this.fireEvent('expand', this);
},
collapse : function()
{
if(!this.isExpanded())
{
return;
}
this.list.hide();
Ext.getDoc().un('mousewheel', this.collapseIf, this);
Ext.getDoc().un('mousedown', this.collapseIf, this);
this.fireEvent('collapse', this);
},
isExpanded : function()
{
return this.list && this.list.isVisible();
},
onTriggerClick : function()
{
if(this.disabled)
{
return;
}
if(this.isExpanded())
{
this.collapse();
}
else
{
this.onFocus({});
this.expand();
}
this.el.focus();
}
});
Ext.reg('multiselectfield', Ext.form.MultiSelectField);
http://blog.csdn.net/edisundong/archive/2008/01/25/2065379.aspx
说明:
感谢飞天色鼠和javaeye论坛的sp2,其实是改了飞天色鼠的代码。sp2给了很大帮助,感谢!
演示效果:
调用代码如下:
var auto_field=new Ext.form.MultiSelectField();
if(contextlist==null)
{
auto_field.contextArray=
[
['1','一'],
['2','二'],
['3','三']
]
}
else
{
auto_field.contextArray=contextlist;
}
auto_field.fieldLabel=text;
auto_field.id=id;
auto_field.name=id;
return auto_field;
代码如下:
Ext.form.MultiSelectField = Ext.extend(Ext.form.TriggerField, {
readOnly : true ,
defaultAutoCreate : {tag: "input", type: "text", size: "24", autocomplete: "off"},
displayField : 'text',
contextArray: undefined, //必须满足每行至少两列,第一、二列分别为[value,text]
valueField : undefined,
hiddenName : undefined,
listWidth : undefined,
minListWidth : 50,
layerHeight : undefined,
minLayerHeight : 60,
value : undefined,
baseParams : {},
checkpanel:undefined,
initComponent : function()
{
Ext.form.MultiSelectField.superclass.initComponent.call(this);
this.addEvents
(
'select',
'expand',
'collapse',
'beforeselect'
);
if(this.transform)
{
this.allowDomMove = false;
var s = Ext.getDom(this.transform);
if(!this.hiddenName)
{
this.hiddenName = s.name;
}
s.name = Ext.id();
if(!this.lazyRender)
{
this.target = true;
this.el = Ext.DomHelper.insertBefore(s, this.autoCreate || this.defaultAutoCreate);
Ext.removeNode(s);
this.render(this.el.parentNode);
}else{
Ext.removeNode(s);
}
}
},
onRender : function(ct, position)
{
Ext.form.MultiSelectField.superclass.onRender.call(this, ct, position);
if(this.hiddenName)
{
this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id: (this.hiddenId||this.hiddenName)},
'before', true);
this.hiddenField.value =
this.hiddenValue !== undefined ? this.hiddenValue :
this.value !== undefined ? this.value : '';
this.el.dom.removeAttribute('name');
}
if(Ext.isGecko){
this.el.dom.setAttribute('autocomplete', 'off');
}
this.initList();
},
initList : function()
{
if(!this.list)
{
var cls = 'x-multiselectfield-list';
this.list = new Ext.Layer
({
shadow: this.shadow, cls: [cls, this.listClass].join(' '), constrain:false
});
var lw = this.listWidth || Math.max(this.wrap.getWidth(), this.minListWidth);
this.list.setWidth(lw);
this.list.swallowEvent('mousewheel');
this.innerList = this.list.createChild({cls:cls+'-inner'});
this.innerList.setWidth(lw - this.list.getFrameWidth('lr'));
this.innerList.setHeight(this.layerHeight || this.minLayerHeight);
if(!this.checkpanel)
{
this.checkpanel = this.CheckPanel(this.innerList);
}
this.checkpanel.render();
}
},
onSelect:function(id,text,checked)
{
this.setValue(id,text,checked);
},
CheckPanel:function(el)
{
var checkpanel = new Ext.Panel
({
el:el,
autoScroll:true
});
var multiselectField = this;
if(typeof this.contextArray != 'undefined')
{
for(var i=0;i {
var contArry=this.contextArray[i];
var auto_field=new Ext.form.Checkbox
({
boxLabel:contArry[1],
id:contArry[0],
name:contArry[0],
cls :'x-multiselectfield-list'
});
auto_field.on('check',function(auto_field)
{
multiselectField.onSelect(auto_field.id,auto_field.boxLabel,auto_field.checked);
});
checkpanel.add(auto_field);
}
}
return checkpanel
},
getValue : function()
{
if(typeof this.value != 'undefined')
{
return this.value;
}
else
{
return Ext.form.MultiSelectField.superclass.getValue.call(this);
}
},
setValue : function(id,text,ischecked)
{
var text = text;
var value = id;
var return_text_string;
var return_value_string;
var text_temp = Ext.form.MultiSelectField.superclass.getValue.call(this);
var ids_temp = typeof this.value != 'undefined' ? this.value : '';
var text_arrtemp = text_temp.split(",");
var ID_arrtemp = ids_temp.split(",");
if(ischecked)
{
Array.add(text_arrtemp,text);
Array.add(ID_arrtemp,value);
}
else
{
Array.remove(text_arrtemp,text);
Array.remove(ID_arrtemp,value);
}
return_text_string = text_arrtemp.toString();
return_value_string = ID_arrtemp.toString();
var first_text_str = return_text_string.substr(0,1);
var first_value_str = return_value_string.substr(0,1);
if(first_text_str==",")
{
return_text_string=return_text_string.substr(1);
}
if(first_value_str==",")
{
return_value_string=return_value_string.substr(1);
}
Ext.form.MultiSelectField.superclass.setValue.call(this, return_text_string);
this.value = return_value_string;
if(this.hiddenField)
{
this.hiddenField.value = return_value_string;
}
},
onDestroy : function()
{
if(this.list)
{
this.list.destroy();
}
Ext.form.MultiSelectField.superclass.onDestroy.call(this);
},
collapseIf : function(e)
{
if(!e.within(this.wrap) && !e.within(this.list))
{
this.collapse();
}
},
expand : function()
{
if(this.isExpanded() || !this.hasFocus)
{
return;
}
this.list.alignTo(this.wrap, this.listAlign);
this.list.show();
Ext.getDoc().on('mousewheel', this.collapseIf, this);
Ext.getDoc().on('mousedown', this.collapseIf, this);
this.fireEvent('expand', this);
},
collapse : function()
{
if(!this.isExpanded())
{
return;
}
this.list.hide();
Ext.getDoc().un('mousewheel', this.collapseIf, this);
Ext.getDoc().un('mousedown', this.collapseIf, this);
this.fireEvent('collapse', this);
},
isExpanded : function()
{
return this.list && this.list.isVisible();
},
onTriggerClick : function()
{
if(this.disabled)
{
return;
}
if(this.isExpanded())
{
this.collapse();
}
else
{
this.onFocus({});
this.expand();
}
this.el.focus();
}
});
Ext.reg('multiselectfield', Ext.form.MultiSelectField);
发表评论
-
extjs Ext.tree.TreeEditor 节点编辑状态前后
2010-11-11 15:41 3558//这里面添加代码 treeEditer = new Ex ... -
Ext带验证码登录框可刷新验证码
2009-11-06 14:49 2862js代码 程序代码 // @filename logi ... -
EXT 之事件处理
2009-10-21 12:08 1477ExtJS提供了一套强大的事件处理机制,通过这些事件处理机制来 ... -
extjs疑问
2009-10-16 14:28 1443Ext.onReady()与Ext.EventManager. ... -
Ext中Resizable的使用方法
2009-10-16 14:23 4070ResizableExample = { init: ... -
Extjs 简单扩展 Component 实现点击刷新的验证码。
2009-10-15 09:41 2057view plaincopy to clipboardprin ... -
用extjs做的appspot网站
2009-09-28 09:35 2083用extjs做的appspot网站 在日常生活中,经常花了钱 ... -
验证图片客户端控制类for Ext
2009-09-28 09:30 1060验证图片客户端控制类for Ext obj = page ... -
ExtJS2.0+struts实现文件上传
2009-09-28 09:29 1384ExtJS2.0+struts实现文件上传 Extjs+str ... -
超简单实现:Ext.TabPanel加入iframe
2009-09-28 09:28 987超简单实现:Ext.TabPanel加入iframe 转载自 ... -
Ext Portal 新例子
2009-09-28 09:26 3240Ext Portal 新例子 我综合了Ext社区目前有关Ex ... -
在EXT中使用FCKEditor编辑器例子
2009-09-28 09:21 1112在EXT中使用FCKEditor编辑器例子 转载自http: ... -
ext2的树组件的使用(从底层到表现层,异步加载)
2009-09-28 09:20 893ext2的树组件的使用(从 ... -
Ext2.0 综合应用
2009-09-28 09:18 1460Ext2.0 综合应用 转载自http://www.itey ... -
EXT2.0 checkbox树的扩展
2009-09-28 09:16 1411EXT2.0 checkbox树的扩展(支持单选,级联多选,只 ... -
部分出现Ext.Fly()为空或不是对象
2009-09-28 09:01 7622在ie7 ,ie8下 数据绑定下的页面都会出现 Ext.Fly ... -
Ext.get()与Ext.fly()又什么不同
2009-09-28 08:54 2846Ext.get()每次都会创建对象.而fly则会去缓存中查找, ...
相关推荐
标题 "ext pop select fields" 暗示我们讨论的是Ext JS库中的一个功能,可能涉及到弹出选择框(popup)和选择字段(select field)。在Ext JS中,这是一个常用的组件模型,用于创建交互式用户界面。这篇博客文章的...
在本案例中,"layui-select-ext.zip" 提供了一个针对layui的扩展,特别是对于多选下拉框(select)的功能增强。layui-select-ext 是这个扩展的简易版,它可能包含了更易于使用的接口和定制化选项,以满足开发者在...
4. `TSelect.js`:这个文件名暗示可能是一个特制的下拉选择器,用于实现下拉树功能。它可能是Ext JS的扩展或者一个独立的JavaScript库。 5. `ssjImg`:这可能是图片资源文件夹,可能包含了与下拉树相关的图标或者...
Ext中的Combobox下来框在EditGrid中的应用。Combobox显示值问题得以解决。
groupCombo.on('select', function() { typeCombo.reset(); typeDS.proxy = new Ext.data.HttpProxy({ url : 'getTypesByUser.action?groupId=' + groupCombo.getValue() }); typeDS.load(); });
Ext动态换皮肤 1、在页面中增加一个放样式文件的地方: ... this.cboTheme.on('select', function(combo) { var value = combo.getValue(); Ext.util.CSS.swapStyleSheet(‘theme’, value); }, this); 3、完成。
3. 如果看到全中文的响应页面,说明工程运行正常,参见ExtStart.js文档,有非常详细的注释说明Ext.Element类与Ext.select()选择器的使用,以及事件处理的几种使用情况,最后是Ext框架使用Ajax技术的演示部分,需要...
EXT是Sencha公司开发的一个基于JavaScript的开源框架,主要用于构建富客户端Web应用程序。EXT Color Change Component,即EXT颜色改变组件,是EXT库中一个用于处理颜色选择和展示的UI组件,它提供了用户友好的界面,...
多选下拉框在EXT JS中通常通过`Ext.form.CheckboxGroup`或`Ext.form.RadioGroup`类来实现,但在EXT3.2中,实现多选下拉框功能通常会使用`Ext.form.FieldSet`或`Ext.form.ComboBox`的自定义扩展。这类组件提供了复选...
例如,EXT提供了一种简便的方式获取多个DOM节点,可以使用Ext.select()方法一次性选取多个匹配的元素。 响应事件是EXT中的重要特性,它通过添加事件监听器实现。EXT支持标准的DOM事件,同时也定义了一些自定义事件...
2. **事件处理**:你可以监听用户的操作,例如`select`事件在用户选择日期时间后触发,可以用来处理选定后的逻辑。 3. **验证**:EXT支持表单验证,DateTimeField可以设置`allowBlank`来控制是否允许为空,`...
var allParagraphs = Ext.select('p'); // 获取所有段落 ``` EXT4.0还涉及了许多其他重要概念,如组件(Components)、布局(Layouts)、数据绑定(Data Binding)以及Store和Model等。EXTJS4.0的API文档是深入...
在EXT(Ext JS)这个强大的JavaScript框架中,时间控件是一种常见的组件,用于用户界面中进行日期和时间的选择。EXT提供了多种这样的控件,其中一种是能够选择年、月、日、时、分、秒的高级时间选择器。标题中的"ext...
- 使用`Ext.get`和`Ext.select`方法可以高效地操作页面上的元素,例如高亮显示、修改样式或绑定事件处理程序。 - `ps.each(function(el) { el.highlight(); })`展示了如何遍历由`select`方法返回的元素集合,对每个...
Ext.MessageBox.confirm("sure", "please click button as you select:", function(but) { Ext.MessageBox.alert("message", "you select: " + but); }); ``` 在这个例子中,我们创建了一个带有标题“sure”的确认...
- **获取 DOM 节点**:通过 `Ext.get` 或 `Ext.select` 方法可以轻松获取页面中的 DOM 元素。 - **响应事件**:使用 `addListener` 方法为元素绑定事件处理器,例如点击事件。 - **使用 Widgets**:Ext 提供了多种...
select: function(combo, record) { // 更新本地化设置 updateLocalization(record.get('abbreviation')); } } }); // 创建并显示语言选择组件 Ext.get('languages').appendChild(languageComboBox.render...