我正在开发我的第一个 Orchard (v1.8)网站。我需要实现一个具有级联下拉列表的表单,即当用户从类别下拉列表中选择一个选项时,下面的项目下拉列表将填充下面的项目。仅限同一类别。
理想情况下,类别选项将使用我添加的类别分类。类别项目将是所选分类术语的内容项目。
我已经看了自定义表单模块,但我不确定如何做到这一点,我在CMS中看不到这样做的明显方法?
这项工作是我正在编写的自定义模块的一部分,所以如果你知道如何在C#中完成它那么这对我有帮助。
答案 0 :(得分:2)
没有内置字段会以这种方式运行,因此您必须构建自己的字段。内容类型级别的字段设置可以在系统上的分类法之间进行选择。然后,字段驱动程序可以检索该设置,使用分类法服务检索术语,并将其移交给字段的编辑器形状。然后,编辑器形状的模板可以将其格式化为下拉列表,并在该下拉列表上连接更改事件。选择新术语时,脚本会向控制器操作发送ajax请求,该操作也由模块提供。该操作接收术语的内容项id作为参数,向分类法服务查询用该术语标记的项,并发回带有ID的ID和显示项的JSON结果。客户端的脚本接收该数据并用它填充第二个下拉列表。在驱动程序的post编辑器方法中,将选定的内容项保留在字段的存储中。