小编net*_*emp的帖子

ExtJS 4 - 如何加载带有来自表单的最新值的参数的网格存储?

我有一个窗口,顶部有一个搜索表单,底部有一个网格。

用户可以在搜索表单中输入值,然后单击按钮 - 获取记录。

单击此按钮时,我通过以下方式将表单字段中的值作为参数传递来加载网格的存储:

store.load({
    params:{
        key1:Ext.getCmp('field1').getValue();
    }
});
Run Code Online (Sandbox Code Playgroud)

我尝试在商店代理本身中提供参数,但不幸的是它总是采用初始值(呈现表单时的值)而不是用户在表单字段中输入的最新值。以下是我在创建商店时用于为 params 分配值的方法:

extraParams:{
    key1:Ext.getCmp('field1').getValue();
}
Run Code Online (Sandbox Code Playgroud)

我想在两件事上寻求指导:

一种。在定义商店时,是否可以确保商店在查询服务器之前从表单字段中获取最新/当前值,以便在调用加载函数时不必提供这些值?

这变得更加必要,因为我在底部有一个分页工具栏,它带有一个刷新按钮(以及用于导航的下一个、最后一个、上一个、第一个图标)。

现在,每当用户点击刷新(或任何导航图标)时,商店都会在没有查询参数的情况下加载。

因此,第二件事是:

湾 如果“a”的答案是 - 在调用加载函数时手动将最新值传递给参数 - 那么我如何为“刷新”按钮和导航图标(即下一个、最后一个、上一个和第一个)编写处理程序分页工具栏,以便我可以将最新的表单值传递给加载功能。

提前感谢您的任何帮助。

PS:我正在使用 ExtJS 4。

forms grid load extjs store

3
推荐指数
1
解决办法
9188
查看次数

ExtJS 4 - Grid Vertical ScrollBar问题

在我们的应用程序中,我们有一个包含网格和两个按钮的窗口 - 清除和检索.

用户可以通过单击"检索"按钮从网格中的服务器加载记录,然后单击"清除"按钮清除网格存储.

问题是当用户第二次加载网格时,有时垂直滚动条不起作用.

也就是说,如果用户首先单击Retrieve按钮以加载记录,然后使用Clear清空网格 - 再次单击Retrieve,则第二次垂直滚动条在网格中不起作用.

实际上,垂直滚动条仅适用于第一次,然后它将停止工作,直到用户通过刷新浏览器窗口再次重新加载整个页面.

最奇怪的是这个问题不是"一致的".也就是说,这个问题有时只会在没有做任何额外的事情的情 点击相同的Retrieve和Clear按钮,来自服务器的相同数据,但滚动条有时会​​停止工作而不显示任何错误.

这对用户来说非常烦人,并且因为它也没有显示任何错误,因此,它很难诊断.

有没有人遇到类似的问题,或者任何人都可以指出一些有用的东西可能对此有所帮助.

有关我正在工作的环境的一些信息:

  • ExtJS版本 - 4.0.7
  • 浏览器检查 - IE8,IE9,FF4 +,Chrome10 +

grid extjs scrollbar extjs4

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

ExtJS 4 - 如何使用Ajax下载文件?

我有一个包含各种文本字段和两个按钮的表单 - 导出到Excel并导出为CSV.

用户可以将值提供给表单中的不同字段,然后单击其中一个按钮.

预期的行为是应该触发Ajax请求,并将字段值作为参数,并且应该下载所选文件(按钮点击的Excel/CSV)(我没有提交表单,因为需要在提交前的值).

我一直在使用以下代码成功下载Ajax请求的代码:

result  =   Ext.decode(response.responseText);

try {
    Ext.destroy(Ext.get('testIframe'));
}

catch(e) {}

Ext.core.DomHelper.append(document.body, {
    tag: 'iframe',
    id:'testIframe',
    css: 'display:none;visibility:hidden;height:0px;',
    src: result.filename,
    frameBorder: 0,
    width: 0,
    height: 0
});
Run Code Online (Sandbox Code Playgroud)

在文件是在服务器上物理创建的情况下,上面的代码工作正常.但是在我当前的项目中,文件不是在服务器上创建的,而是使用正确的标题将内容流式传输到浏览器.

因此,当文件在服务器上不存在时,有没有办法使用Ajax下载文件?只是补充一点,我有一长串参数需要发送到服务器,因此无法将它们全部添加到iframe的src中.

任何人都可以指导这个吗?

在此先感谢您的帮助.

javascript ajax extjs download extjs4

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

ExtJs 4.1 - 如何同步两个网格的垂直滚动?

我们在一个面板中有两个网格,我们需要将它们的记录垂直滚动.也就是说,如果用户垂直滚动任何一个网格,那么其他网格也会滚动.

那么,什么可以绑定他们的垂直滚动条?

此处提供了4.0.2a版本的解决方案,但所使用的功能已在4.1版本中弃用,因此在较新版本中不起作用.

任何人都可以指导如何在ExtJs 4.1版中实现这一目标.*?

在此先感谢您的帮助.

grid scroll extjs scrollbar extjs4.1

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

ExtJs中的MVC是一个通用的解决方案吗?

我们已经使用ExtJs很长一段时间了,现在,随着MVC模式的出现,我们面临着一个关键问题,即在未来的时代是否使用它,因为我们一直遵循的方法.

在我们的应用程序中,我们有类似的屏幕,例如40个用于生成报告的类似屏幕等等.这些报告屏幕将具有带按钮的表单 - PDF,CSV,EXCEL.所有按钮在每个屏幕上都具有相同的功能,即将表单提交到URL并生成特定报告.

我们一直遵循的方法是创建一个自定义类,例如reportscreen类,它扩展了ExtJs的窗口类.

此自定义报告屏幕类已经具有定义其处理程序的按钮(假设所有屏幕的功能类似于它们),并且还将具有带有函数setFormItems()的表单.此类的任何实例都将使用setFormItems()和用于生成报告的url为表单提供项.

这种方法不仅有助于我们在很大程度上减少开发工作,而且甚至允许团队的新成员使用该类并创建新的屏幕.

现在MVC是最受欢迎的模式,上面分享的方法肯定不是按照MVC模式.但是,我们是否需要真正转向MVC模式?

使用上述方法,我们不仅可以节省工作量,还可以更好地控制事物.

提出这个问题的目的是了解如果我们使用MVC模式实现上述场景并远离我们当前的方法,我们将获得的确切优势.

那么,MVC会在上面的上下文中带来什么额外的东西呢?而且,在MVC模式中实现这样的事情的最佳方式是什么?

在此先感谢您的帮助.

model-view-controller design-patterns extjs extjs-mvc extjs4.1

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