问题标签 [extjs4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
9653 浏览

window - ExtJS 4:容器中的窗口

我有一个应用程序,它在视口的中心区域(带有边框布局)打开窗口,该区域也有东、西和南区域。据我所知,有两种方法可以打开这些窗口,并且都有一些注意事项。

第一种是用于.add()将窗口组件添加到其容器(中心区域)。这种方法存在以下问题:

  1. 随着东/西区域的展开/折叠,Windows 不会重新定位。例如,对于 200px 宽的西部区域,如果西部区域折叠并且窗口位于距离中心区域西边缘 150px 的位置,则西部区域被扩展,中心区域的西边缘将移动 200px,但窗口将保持原位,与扩展的西部区域重叠。如果进行任何移动窗口的尝试,由于其constrainHeader: true设置,它将迅速回到中心区域的西边缘,但它应该在展开/折叠时重新定位。

  2. Z-Index 管理:窗口仅受其标题的约束,因此可以将窗口的主体拖到中心区域的南边缘下方。理想情况下,以这种方式定位时,它应该出现在南部区域下方,但出现在上方。同样,如果东部或西部区域是浮动的(未展开),它们也应该出现在任何位置足够接近以重叠的窗口上方。看起来虽然窗口是作为中心区域的子元素添加的,但它们实际上并不是中心区域元素的 DOM 子元素,因此它们的 z 索引与中心区域无关,而是与页面主体相关。因此,即使使用带有自定义 zseed 的自定义 ZIndexManager,也无法保证所有打开窗口的 z-index 都低于其他区域的 z-index。

  3. 当一个窗口展开并恢复到其原始大小时,它的原始位置向右移动一个等于西部区域可见宽度的量 - 如果该区域折叠,则移动量很小,因为只有标题是可见的,否则是全宽。

第二种打开窗口的方法是使用renderTo配置选项,将中心区域的元素作为其值。这解决了上面的问题 1) 和 2) - 当东/西区域展开/折叠时,窗口会正确重新定位,并且由于窗口的元素是中心区域元素的实际 DOM 子项(因此它们的 z 索引是相对于中心区域),z-index 管理问题不再是问题。然而:

  1. Ext.AbstractComponent 文档声明在将组件添加为某个容器的子组件时不要使用 renderTo,因为容器布局管理器应该处理它。这与浮动组件有关吗?

  2. 与上述 3) 类似的问题 - 窗口最大化和恢复就好了,但是在拖放窗口时会发生类似的向东迁移,并且更加明显。每当您放下一个窗口时,它都会定位在它被放下的地方的右侧,该数量等于(或接近)西部区域的可见宽度。当西部地区扩大时,这尤其令人不安。

所有这些问题(除了 maximise-restore 问题)都可以在这个简单的应用程序中看到:

这些方法中的任何一种是否比另一种具有优势,并且可以对其进行调整以克服所有列出的问题吗?

更新:

我之前可能应该想到的事情是同时使用这两种方法。这样做意味着当东/西区域展开/折叠时,窗口会正确重新定位,没有 z-index 问题,并且在最大化/恢复时窗口不会错误地定位自己。好消息!然而,窗口在拖放时仍然不能正确定位自己,这很容易成为最明显和最烦人的问题。关于为什么会发生这种情况以及如何阻止它的任何想法(当它被丢弃时,没有手动从 windows x 位置减去西部区域的宽度)?

0 投票
2 回答
2374 浏览

combobox - extjs4 组合框更改也会更改另一个组合框数据存储,并选择值

这可能是一个愚蠢的问题,但我想问一下,当组合框选择的值发生更改时,是否有可能更改另一个组合框的存储数据。

这可能会令人困惑,所以让我举一个清晰的例子,...

comboboxA 有一个包含国家名称的数据存储 comboboxB 有一个包含城市名称的数据存储

因此,其中的数据comboboxA可能是:

comboboxB当值为comboboxA“USA”时的数据将是:

但是当comboboxA 的值为“England”时,comboboxB 中的数据将是:

我怎么能那样做?

我试过了:

我的代码有问题吗?

0 投票
0 回答
918 浏览

model-view-controller - ExtJS4 - 将 JSON 绑定到按钮的 MVC 工具栏

我有一个带有工具栏、选项卡面板和导航面板的 MVC 应用程序绑定到视口中。在工具栏中,我需要一个带有会话用户名称的注销按钮。所以我请求服务器。我为我的工具栏控制器设置了一个商店和一个模型:

0 投票
2 回答
3523 浏览

javascript - 将点击事件绑定到 Ext JS 中的选项卡

再次阿罗哈,所以。

我正忙于一个项目,该项目几乎都是用于前端工作的 ExtJS。我使用的是 4.0.0 版,假设这是有必要知道的。我有一些代码如下:

当时有几个

现在我的大问题是,我需要能够将事件绑定到实际的选项卡。我知道能够将事件绑定到选项卡面板和选项卡栏,但我需要将点击事件实际绑定到面板中的选项卡之一。我尝试了一些类似的东西:

但是,据我所知,问题是绑定到实际面板本身,而不是绑定到选项卡栏中的选项卡。有趣的是,就功能而言,它实际上甚至没有绑定到实际的面板,因为我从未看到该控制台日志信息。

无论如何,你们中的任何人会碰巧知道如何将事件直接绑定到选项卡吗?甚至如何直接访问选项卡?我一直在筛选 ExtJS API 文档,但我仍然找不到任何东西,所以,如果有人能提供帮助,那就太棒了!:D

只是为了清楚起见,我并不想尝试更改选项卡。我正在尝试挂钩单击选项卡的实际单击事件,因为我将检查它是否是被单击的鼠标中键,因此如果是,我可以关闭选项卡。

0 投票
2 回答
6435 浏览

json - 为什么我不能使用 JSONStore 让一个简单的 Combobox 在 EXTjs 4 中工作?

这让我发疯。我有一个 JS 文件是:

我的/sites/getsites.do返回JSON数据格式如下:

我意识到这data[0].raw["sites"]可能不是访问数据的首选方式,但我确实确认正在填充数据并且我正在返回 136 sites

combobox DOES渲染。但是,实时搜索不起作用并且没有条目。

我是 ExtJS 的新手。

任何提示将不胜感激。

谢谢

更新

此代码有效

当我在没有 a proxy(并指定 a url)的情况下运行它时,我收到一条错误消息,说我没有指定代理。

谢谢

更新

啊!!!!!!

我得到了它。这里是正确的JSONStore

谢谢大家。无法相信这有多难。主要是因为找不到好的教程。哈哈

0 投票
1 回答
46816 浏览

javascript - Extjs 4:创建 iFrame 窗口

我需要在 Extjs 中创建一个 iFrame 窗口。以前在 ExtJS 3.x 中我会这样做:

但是WindowExtJS 4 的 Class 似乎没有 bodyCfg。

关于如何制作 iFrame ExtJS 4 窗口的任何想法?

0 投票
5 回答
8766 浏览

extjs - 未找到记录时的 ExtJS 网格消息

我正在使用 ExtJS 4.0 网格并希望在没有找到记录时在网格区域内显示一条消息(或 HTML 或组件)。我一直在翻阅他们的代码一段时间,似乎找不到任何证据表明这在他们的库中原生存在。有没有我可以使用的配置或方法,还是我必须自己动手?

谢谢

0 投票
1 回答
2869 浏览

javascript - ExtJS4 - MVC 存储,检索数据

我有一个带有商店、模型和视图(工具栏)的控制器:

我的问题出在initLogoutButton函数中。我需要检索从 ajax 请求中获得的唯一用户实例(始终只有一个实例)。我可以在 js 控制台中看到请求,一切都很好,但是我不能用这个数据设置变量或数组!

此外,store.count()函数返回0

0 投票
1 回答
4872 浏览

extjs - 在 extjs4 中查看配置“forceFit”?

在 extjs3 Ext.grid.View 有一个配置属性forceFit
在 extjs4 中与 this 等价的是什么?

0 投票
4 回答
20835 浏览

extjs - 在 Ext.Define 中创建 xtype 并在 TabPanel 项目中调用它:[]

一般来说,我是 extjs 的新手,特别是 4 版本:

我创建了一个类:

接下来,我想在 tabPanel items:[] 中以 XTYPE 的形式调用这个类:
我这样做了:

还没有运气,我得到的只是: Cannot create an instance of unrecognized alias: widget.MyPanel"
你一定想,真是个菜鸟.... ;-)

有人请帮忙!!!