标签: extjs4

ExtJs 4,如何防止xtype:'combo'在点击已经选中的项目时崩溃?

我有ComboBox.当我从展开的列表中单击项目时,ComboBox选择此项并折叠.如果我点击已经选中的项目,它也会折叠.

当用户选择已选择的项目时,有没有办法"停止" ComboBox 折叠?

PS:要短,我想ComboBox表现得像个TimeFieldhttp://dev.sencha.com/deploy/ext-4.0.0/examples/themes/index.html

UPDATE

我不需要至少在IE7和IE8上工作的解决方案..

javascript combobox extjs extjs4

11
推荐指数
1
解决办法
6496
查看次数

extjs 4 XTemplate类关联

我正在测试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)

model extjs model-associations extjs4

11
推荐指数
1
解决办法
7125
查看次数

Extjs 3到Extjs 4

我想从extjs 3迁移到extjs 4.我在rails 3中测试了示例 Extjs 4示例.我观察到extjs 4中的页面渲染时间非常慢.我不知道是什么原因.
谁能告诉我,背后的原因是什么?或者
我的应用程序有任何问题吗?和
我应该怎么做,以提高ExtJS的4的演出内容吗?

extjs extjs4 extjs3

11
推荐指数
1
解决办法
5068
查看次数

ExtJS:针对模型的表单验证

我正在学习ExtJS,我遇到了两个不同的概念,这些概念在逻辑上与我有关.

  1. 模型类可以在其字段上指定自定义验证方法.
  2. 模型实例可以加载到Forms中,也可以从Forms中检索.

我的问题是:

  1. 是否可以让表单使用模型的验证设置来验证用户输入的内容并显示实时反馈?
  2. 如果1的答案为否,那么还有其他方法可以在表单中设置实时验证吗?

谢谢

forms validation extjs extjs4

11
推荐指数
2
解决办法
1万
查看次数

ExtJS如何修改textfield参数autocomplete ="off"

一些现代(Safari,chrom,firefox)浏览器记录信息,并允许您在回来时自动完成一些文本字段.

我想在ExtJS中做到这一点.我在这里有一个答案:

如何让Chrome记住在表单上登录?

但是在ExtJS中,我无法访问该参数autocomplete.它始终是硬编码的autocomplete="off".在文档中,我没有找到如何修改它:http://docs.sencha.com/ext-js/4-1/#!/api/Ext.form.field.Text

有人有一个简单的答案来修改这个参数吗?

extjs extjs4

11
推荐指数
1
解决办法
8377
查看次数

如何使用dataIndex Extjs 4查找列索引

在ExtJS 3中我使用了以下代码:

grid.getColumnModel().findColumnIndex("Tasks")

我试图寻找它的API文档,但没有运气...所以怎么IR可能,我可以按列或列的标题名称的dataIndex找到网格的列索引.

javascript extjs extjs4

11
推荐指数
2
解决办法
2万
查看次数

Extjs 4中的网格面板滚动条无法正常工作

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()用于网格面板,但也很有用.网格面板位于窗口中.

什么能解决这个问题?

实际上它可以工作一段时间但不会一直工作.

extjs4

10
推荐指数
2
解决办法
2万
查看次数

Extjs组件在EXTJS 4上的Ext.XTemplate内部

我正在尝试将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)

components extjs render extjs4

10
推荐指数
1
解决办法
1万
查看次数

如何配置(调试)ExtJS EventPipe/Events

我正在开发一个相对较大的ExtJS MVC应用程序,大约有40个控制器,> 100个商店,> 100个模型等等.我没有遵循可能的MVC方式严格,所以我实现了一个懒惰的控制器初始化,它首先在需要时初始化控制器,因此存储.我也没有在任何控制器中注册任何视图,但这只是因为我不需要.

现在,表单(在Ext.window.Window中打开)大约需要1-2秒,直到它们出现,同时在一个相当小的项目中立即弹出相同的表单.所以形式(布局)不能成为我带来事件的问题.但我真的不知道最好的方法是什么,或者已经有一个很好的教程如何做到这一点.我想最好对它进行分析,看看整个管道需要多长时间(不仅仅是EventPipe本身).

活动结构:

大多数事件都是通过control()负责的控制器注册的.所有其他活动最多注册{ single: true }.窗口在重用时关闭并重新实例化.

profiling extjs extjs4 extjs-mvc extjs4.1

10
推荐指数
1
解决办法
991
查看次数

在ExtJS 4中将商店加载到组合框时如何发送额外的参数?

在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)

另外,我究竟会把听众放在哪里?我想我在我的例子中没有得到那个正确的吗? …

javascript extjs extjs4 extjs4.1 extjs4.2

10
推荐指数
2
解决办法
4万
查看次数