标签: extjs4

解释ExtJS 4事件处理

我最近开始学习ExtJS,并且无法理解如何处理事件.我没有任何以前版本的ExtJS的经验.

从阅读各种手册,指南和文档页面,我已经找到了如何使用它,但我不清楚它是如何工作的.我已经为旧版本的ExtJS找到了几个教程,但我不确定它们在ExtJS 4中的适用性.

我特别关注像这样的"最后一句话"

  • 事件处理函数传递什么参数?是否有一套标准的args总能通过?
  • 如何为我们编写的自定义组件定义自定义事件?我们如何解雇这些自定义事件?
  • 返回值(true/false)会影响事件的泡沫吗?如果没有,我们如何控制事件处理程序内部或外部的事件冒泡?
  • 是否有注册事件监听器的标准方法?(我现在遇到两种不同的方式,我不确定为什么使用每种方法).

例如,这个问题让我相信事件处理程序可以接收相当多的参数.我见过其他教程,只有两个参数处理器.有什么变化?

javascript extjs event-handling extjs4

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

到initComponent()或不到initComponent()

我在ExtJS 4中构建应用程序时很困难,其中一部分是关于何时在initComponent()中配置某些内容以及何时不...

例如,在Sencha自己的MVC Application Architecture doc中,首次创建网格视图时,他们在initComponent()方法中定义了内联存储.(参见"定义视图"部分)

再往下,当他们将商店分解为一个单独的类时,他们将定义移到了initComponent()之外.有一个有用的评论引起了对这一事实的关注,但没有解释.(请参阅创建模型和存储部分)

我猜原因应该是显而易见的,但我很想念它.有什么指针吗?

extjs extjs4 extjs4.1

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

ExtJS 4.x:如何禁用Ext.grid.Panel单元格中的"脏记录"红角?

我有一个带有商店的Ext.grid.Panel(aka gridpanel),仅用于客户端视觉效果(即,没有任何内容保存到服务器).当我创建新的模型实例并将它们添加到商店时,它们会在网格中显示一个红色的角(可能表示存储更改尚未保存).

目前,我在每个记录/模型上调用.commit()方法,然后将其添加到商店,以防止网格中的脏记录红色角落.

是否有更简单的方法来简单地配置网格面板,以便不显示有关记录"脏"状态的任何可视指示器?

注意:这个类似问题的解决方案要么涉及CSS,要么仅适用于ExtJS 3.我希望找到一个适用于ExtJS 4的程序化"设置".

extjs4

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

Telerik KendoUI vs Sencha ExtJS?

我们将在Web上构建一个企业级应用程序,为此我们已经将我们的选择过滤到ExtJS和KendoUI.

两者都很不错并且具有丰富的功能/控件,KendoUI的性能比ExtJS快,但ExtJS就像更完整的包,其中包括构建桌面所需的每个组件,如Web应用程序和Grid似乎更强大.

另一方面,使用KendoUI,我们拥有jQuery的强大功能,感觉像家庭熟悉和几乎零学习曲线,因为团队已经使用jQuery.

有没有人有使用其中任何一个构建大型企业级应用程序的经验?如果是,你的经历是什么?请分享它是坏还是好,以便在我最终与他们中的任何人长时间合作之前我可以有一些基础.

我更倾向于ExtJS,因为我们将使用来自CubeDrive(myCalendar)的调度程序控件,它再次位于ExtJS中.

因此,欢迎您的想法和经验帮助我做出正确的决定.

extjs javascript-framework extjs4 kendo-ui

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

如何创建自定义ExtJS表单字段组件?

我想使用其中的其他ExtJS组件(例如TreePanel)创建自定义ExtJS 表单字段组件.我怎样才能最轻松地完成这项工作?

我已经阅读了Ext.form.field.Base的文档,但我不想定义字段体fieldSubTpl.我只想编写创建ExtJS组件的代码,也可以编写一些获取和设置值的代码.

更新:总结目的如下:

  • 这个新组件应该以GUI形式作为字段.它应该具有标签和其他字段的相同对齐(标签,锚点),而无需进一步的黑客攻击.

  • 可能,我必须编写一些getValue,setValue逻辑.我宁愿将它嵌入到这个组件中,而不是将分离的代码复制到我必须管理的更隐藏的表单字段中.

forms extjs extjs4

31
推荐指数
3
解决办法
4万
查看次数

覆盖ExtJS中的类/属性的最佳实践?

我有一个Ext.form.field.Text,我想要覆盖该setValue功能.

在ExtJS中覆盖此类功能的推荐方法是什么?Ext.override

overriding extjs extjs4 extjs4.1

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

Extjs 4组合框默认值

我正在将我的应用程序从ExtJs 3迁移到4版本.我在formPanel上有几个组合框,之前我使用了hiddenName和所有这些东西来提交valueField而不是displayField.

所有我的改编工作正常(值字段IS提交),但我无法设置组合框的默认值,它们在页面加载后显示为空.以前,我只是在config中指定'value'参数.有什么想法如何解决这个问题?

我的代码 - 模型和商店:

Ext.define('idNamePair', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'id', type: 'string'},
        {name: 'name',  type: 'string'}
    ]
});

var dirValuesStore = new Ext.data.Store({
    model: 'idNamePair',
    proxy: {
        type: 'ajax',
        url: '../filtervalues.json',
        reader: {
            type: 'json',
            root: 'dir'
        }
    },
    autoLoad: true
});
Run Code Online (Sandbox Code Playgroud)

组合配置:

{
    triggerAction: 'all',
    id: 'dir_id',
    fieldLabel: 'Direction',
    queryMode: 'local',
    editable: false,
    xtype: 'combo',
    store : dirValuesStore,
    displayField:'name',
    valueField:'id',
    value: 'all',
    width: 250,
    forceSelection:true
}
Run Code Online (Sandbox Code Playgroud)

combobox extjs extjs4

29
推荐指数
4
解决办法
7万
查看次数

如何将二进制数据显示为图像 - extjs 4

这是有效.JPEG图像的二进制文件.
http://pastebin.ca/raw/2314500

我曾尝试使用Python将这个二进制数据保存到图像中.

如何将此数据转换为带有extjs 4的可查看.JPEG图像?

我试过这个,但它不起作用.

data:image/jpeg;base64,+ binary data
Run Code Online (Sandbox Code Playgroud)

javascript ajax extjs extjs4

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

使用ExtJS 4的动态模型

使用ExtJS 3.x,我能够使用商店的"fields"属性,但在ExtJS 4中我似乎必须绝对使用模型.这很好,但就我而言,它不是一个静态模型,我需要动态定义字段,有时需要更改它们.

我可以重新创建一个模型,但我需要使用不同的名称,因为它显然不可能修改现有的模型,也不能删除它.如果我尝试使用具有相同名称的Ext.regModel,则ExtJS崩溃.

谢谢你的帮助!

extjs extjs4

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

在控制器中设置商店事件的侦听器

我有一个带有商店,模型和一些视图的控制器.

我需要在控制器中监听存储beforesyncwrite事件,但我不知道如何在controllers control-function中设置这些监听器.

我的商店看起来像这样:

Ext.define('DT.store.UsersStore', {
    extend : 'Ext.data.Store',
    model : 'DT.model.User',
    id : 'myStore'
    autoSync : true,
    proxy : {
        type : 'ajax',
        api : {
            read : '/load_entries',
            update : '/update_entry'
        },
        reader : {
            type : 'json',
            root : 'user',
            successProperty : 'success'
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

现在我尝试听我的控制器中的事件:

...
init : function () {
    this.control({
        'myStore' : {
            beforesync : this.doSomething,
            write : this.doSomethingElse
        }
    });
},
...
Run Code Online (Sandbox Code Playgroud)

我的预期结果是,在触发事件时将执行函数.但此时他们被解雇时没有任何反应.

我怎样才能让它发挥作用?

javascript model-view-controller extjs extjs4

28
推荐指数
3
解决办法
3万
查看次数