我有ComboBox.当我从展开的列表中单击项目时,ComboBox选择此项并折叠.如果我点击已经选中的项目,它也会折叠.
当用户选择已选择的项目时,有没有办法"停止" ComboBox 折叠?
PS:要短,我想ComboBox表现得像个TimeField从http://dev.sencha.com/deploy/ext-4.0.0/examples/themes/index.html
UPDATE
我不需要至少在IE7和IE8上工作的解决方案..
我正在测试extjs 4,我偶然发现了一些东西,我似乎无法弄明白.
我有简单的对象关联:快照 - hasMany - >模型
现在,我正在尝试使用XTemplate在View组件中显示这种关联,所以我的XTemplate看起来像这样:
Ext.create('Ext.XTemplate',
'<tpl for=".">',
'<div class="snapshot" id="{id}">',
'<h1>{snapshot}</h1>',
'<p><span class="label">Created: </span>{dateString}</p>',
'<p><span class="label">Models</span></p>',
'<tpl for="models">',
'<p>{name} - {description}</p>',
'</tpl>',
'</div>',
'</tpl>',
'<div class="x-clear bottompad"></div>'
);
Run Code Online (Sandbox Code Playgroud)
我的JSON响应看起来像这样(只显示'快照'节点):
{
"id": 1,
"snapshot": "Snapshot 1",
"created": 1305806847000,
"models": [
{
"id": 1,
"name": "ABC",
"description": "A B C"
}, {
"id": 111,
"name": "ABCDD",
"description": "A B C XCXC"
}
]
}
Run Code Online (Sandbox Code Playgroud)
由于extjs 4引入了Model I的概念,我已经为Snapshot和Model创建了模型,并根据API文档创建了关联.
快照模型:
Ext.define('Snapshot', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: …Run Code Online (Sandbox Code Playgroud) 我想从extjs 3迁移到extjs 4.我在rails 3中测试了示例 Extjs 4示例.我观察到extjs 4中的页面渲染时间非常慢.我不知道是什么原因.
谁能告诉我,背后的原因是什么?或者
我的应用程序有任何问题吗?和
我应该怎么做,以提高ExtJS的4的演出内容吗?
我正在学习ExtJS,我遇到了两个不同的概念,这些概念在逻辑上与我有关.
我的问题是:
谢谢
一些现代(Safari,chrom,firefox)浏览器记录信息,并允许您在回来时自动完成一些文本字段.
我想在ExtJS中做到这一点.我在这里有一个答案:
但是在ExtJS中,我无法访问该参数autocomplete.它始终是硬编码的autocomplete="off".在文档中,我没有找到如何修改它:http://docs.sencha.com/ext-js/4-1/#!/api/Ext.form.field.Text
有人有一个简单的答案来修改这个参数吗?
在ExtJS 3中我使用了以下代码:
grid.getColumnModel().findColumnIndex("Tasks")
我试图寻找它的API文档,但没有运气...所以怎么IR可能,我可以按列或列的标题名称的dataIndex找到网格的列索引.
var gusersPanel = Ext.create('Ext.grid.Panel', {
flex:1,
columns: [{
header: 'User Login',
dataIndex: 'user_login',
width:150
},{
header: 'User Name',
dataIndex: 'user_nicename',
width:150
},{
header:'Privledge',
dataIndex:'admin',
width:150
}],
autoScroll: true,
layout:'fit',
selModel: gusersSel,
store: gusersStore
Run Code Online (Sandbox Code Playgroud)
})
嗨我在Extjs4.0.2a中使用上面的网格面板代码当我在商店中动态填充数据时,滚动条不起作用.我也尝试过将doLayout()用于网格面板,但也很有用.网格面板位于窗口中.
什么能解决这个问题?
实际上它可以工作一段时间但不会一直工作.
我正在尝试将extjs组件添加到tpl面板.反正有没有像这样将组件插入到tpl中
Ext.create('Ext.panel.Panel',{
renderTo: Ext.getBody(),
data: {},
listeners:{
afterrender:function(){
var renderSelector = Ext.query('div.comment-add-textarea');
for(var i in renderSelector){
Ext.create('Ext.form.field.TextArea',{
height:300,
renderTo:renderSelector[i]
});
}
}
},
tpl: Ext.create('Ext.XTemplate',
'<tpl for=".">',
'<div class="comment-add-textarea"></div>',
'</tpl>',{
compiled:true
})
});?
Run Code Online (Sandbox Code Playgroud) 我正在开发一个相对较大的ExtJS MVC应用程序,大约有40个控制器,> 100个商店,> 100个模型等等.我没有遵循可能的MVC方式严格,所以我实现了一个懒惰的控制器初始化,它首先在需要时初始化控制器,因此存储.我也没有在任何控制器中注册任何视图,但这只是因为我不需要.
现在,表单(在Ext.window.Window中打开)大约需要1-2秒,直到它们出现,同时在一个相当小的项目中立即弹出相同的表单.所以形式(布局)不能成为我带来事件的问题.但我真的不知道最好的方法是什么,或者已经有一个很好的教程如何做到这一点.我想最好对它进行分析,看看整个管道需要多长时间(不仅仅是EventPipe本身).
活动结构:
大多数事件都是通过control()负责的控制器注册的.所有其他活动最多注册{ single: true }.窗口在重用时关闭并重新实例化.
在ExtJS 4中使用组合框存储时,如何发送额外参数?
我知道我可以在代理设置中使用"extraParams",但这会影响使用同一商店的所有元素.
即如果我有一个使用名为"用户"的商店的网格,它将列出系统中的所有用户.同时,我有一个组合框,也使用商店"用户",但这次我想列出所有"status = 2"的用户,因此我想发送参数"&status = 2" Ajax调用后端.
如果我使用类似的东西:
store.getProxy().extraParams = {
status: 2
};
Run Code Online (Sandbox Code Playgroud)
它可以工作,但Grid会同时更新为使用"&status = 2".我只想让组合框使用参数.
我想我可以关闭Grid上的"autoupdate",然后在组合框上的"render"事件上设置"extraParams",然后在组合框被隐藏时取消设置,但这将是一个非常难看的解决方案.
我也可以将商店复制到"Users2"并将其用于组合框,但这也是一个丑陋的解决方案.
这样做的正确方法是什么?对大多数人来说,它一定是很常见的事情.
更新1:
我知道我可以使用类似的东西:
store.load({
params:{
'foo1': bar1,
'foo2': bar2
}
});
Run Code Online (Sandbox Code Playgroud)
但是我如何在ExtJS 4 MVC中使用它呢?在那里,我只在表单对象中指定"store:Users".我如何将这些额外的参数发送到.load()函数?
我尝试过以下方法:
{
xtype: 'combobox',
fieldLabel: 'Server',
name: 'server',
//store: 'ServersIP',
store: new Cloud.store.ServersIP(),
/*
listeners: {
beforeload: function(store, options) {
console.log(store);
}
},
*/
valueField: 'id',
displayField: 'name_id',
emptyText: 'Select a Server...',
editable: false
},
Run Code Online (Sandbox Code Playgroud)
但是,它会出现错误"Uncaught TypeError:无法读取未定义的属性'ServersIP'"
但名字是正确的:
Ext.define('Cloud.store.ServersIP', {
extend: 'Ext.data.Store',
model: 'Cloud.model.Server',
Run Code Online (Sandbox Code Playgroud)
另外,我究竟会把听众放在哪里?我想我在我的例子中没有得到那个正确的吗? …
extjs4 ×10
extjs ×9
javascript ×3
extjs4.1 ×2
combobox ×1
components ×1
extjs-mvc ×1
extjs3 ×1
extjs4.2 ×1
forms ×1
model ×1
profiling ×1
render ×1
validation ×1