【问题标题】:Orchard 1.8 CMS : Cascading dropdowns in Custom Forms moduleOrchard 1.8 CMS:自定义表单模块中的级联下拉菜单
【发布时间】:2014-05-01 10:02:57
【问题描述】:

我正在开发我的第一个 Orchard (v1.8) 网站。我需要实现一个具有级联下拉列表的表单,即当用户从 category 下拉列表中选择一个选项时,下面的 items 下拉列表将填充属于仅限同一类别。

理想情况下,类别选项将使用我添加的类别分类法。类别项将是所选分类术语的内容项。

我查看了 自定义表单 模块,但不确定如何做到这一点,并且在 CMS 中看不到明显的方法? p>

这项工作是我正在编写的自定义模块的一部分,所以如果您知道如何在 C# 中完成它,那真的会帮到我。

【问题讨论】:

  • 我尝试在 CMS 中创建一个新的内容类型,其中包含表单所需的字段,然后自定义表单模块可以使用这些字段。我为类别分类添加了一个字段,但没有选项可以使它成为下拉列表。基本上,我已经按照创建表单的步骤进行操作,并且能够在前端显示它,但我只是不知道如何使用分类法或任何其他类型来实现级联下拉列表。

标签: c# forms orchardcms cascadingdropdown orchard-modules


【解决方案1】:

没有内置字段会以这种方式运行,因此您必须自己构建。内容类型级别的字段设置可以提供系统分类法之间的选择。然后,字段驱动程序可以检索该设置,使用分类服务检索术语,并将其交给字段的编辑器形状。然后,编辑器形状的模板可以将其格式化为下拉菜单,并在该下拉菜单上连接一个更改事件。当挑选新术语时,脚本向控制器操作发送Ajax请求,也由模块提供。该操作接收术语的内容项目 ID 作为参数,查询分类服务以查找带有该术语标记的项目,然后发回带有项目 ID 和显示文本的 JSON 结果。客户端的脚本接收该数据并用它填充第二个下拉列表。在驱动程序的 post editor 方法中,将选定的内容项持久化到字段的存储中。

【讨论】:

  • 感谢您的帮助,伯特兰。我现在差不多了,但我对内容类型上的字段有点不确定。你是说我会有两个领域吗?一个用于存储选定的分类术语,另一个用于存储内容项?
  • 没有。一个字段,具有一个设置(分类)和两个属性:术语和项目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-14
  • 2011-03-03
  • 1970-01-01
  • 2021-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多