我今天有一点独特的挑战。我有一个客户端希望能够根据插入到 cfgrid 中来搜索多个项目。假设我们有以下网络表单:
- 国家/地区选择下拉列表
- 依赖于状态选择的 AJAX 下拉列表
- 依赖于城市选择的 AJAX 下拉列表
- 添加按钮
---------------------------------------------------- - 一个 CFGRID,当用户单击添加按钮时,它将用选择填充一行
---------------------------------------------------- - 最后,一个清除按钮,底部有一个GO按钮.
然后,生成的页面将查询数据库并获取有关所选城市的一些统计信息。因此,假设一个人选择美国>亚利桑那州>斯科茨代尔和美国>亚利桑那州>弗拉格斯塔夫。选项下方的网格将"保存"每个选择并重置为其默认选项,等待用户选择其他选项或单击"GO"。
然后,生成的页面将生成列,列出有关社区的一些统计信息,并突出显示每个选定社区之间的"最佳"。
每次用户选择 ADD 按钮(假设选择了三个条件(时,我都希望将信息添加到显示所选选项的 CFGRID 中。然后,在用户选择至少一个国家/城市/州选项后,将 CFGRID 中的所有数据传递到另一个页面,该页面从所选数据执行查询。从理论上讲,用户可以选择任意数量的社区,假设他们愿意让数据库通过足够的数据来获得他们想要的东西,并通过"加载"屏幕等待它。
我遇到了这些挑战,排名不分先后:- 我有一个HTML网格,我必须根据客户端规范使用(没有Java或Flash,必须是HTML(- 我不知道如何将选定的选项放入 CFGRID。我假设我可以编写一些JavaScript,它使用某种AddRow函数通过添加按钮将数据添加到网格中,但似乎无法在互联网上找到方法。- 在我们克服上述挑战后,如何将数据从网格传递到结果页面?我想过传递一个大字符串或结构,但我不确定如何通过 URL 或发布来做到这一点,也不确定如何从网格中获取数据。我想知道我是否最好使用 get 方法编写某种从选项页面传递到结果页面的字符串,而不是处理 CFGRID 中的内容并让 CFGRID 仅用作"虚拟"显示容器。- 最后,在传递完成后,我需要遍历结构并对每行数据执行 CFQUERY 或 CFSTOREDPROC,然后获取我需要在结果页面上显示的统计信息。我认为这取决于我如何将数据从选项选择页面获取到结果页面。
谢谢大家!
CFGRID 很好开始,但它可以是 b*tch 来自定义和扩展......您是否尝试过带绑定的可编辑 CFGRID?先看看它离你想要的有多远。 如果结果证明它很远,那么你可能想要一个jqGrid并编写一些jQuery。
首先,请阅读使用 HTML 网格并使 cfgrid 可编辑。http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-7a01.html#WSc3ff6d0ea77859461172e0811cbec22c24-72e0
一旦你开始工作,看看这些提供的JS函数,你可以与CFGRID一起使用。
-
http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WS0ef8c004658c1089-6262c847120f1a3b244-8000.html
-
http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSd160b5fdf5100e8f-4439fdac128193edfd6-7f5f.html
如果你仍然需要更多,你可能需要深入研究底层的 ExtJS 组件。 在这一点上,我宁愿使用jqGrid
我发现处理这个问题的最佳方法是来回使用SerializeJSON调用和反序列化JSON调用。通过使用JavaScript符号,我们能够在一个页面和另一个页面之间传递一个复杂的JavaScript对象(数组(。这具有附加值,不必担心会话超时并使 URL 从一个解决方案可单击到下一个解决方案。