问题标签 [cascadingdropdown]

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 投票
3 回答
5179 浏览

asp.net-mvc - MVC 下拉列表绑定取决于另一个下拉列表的值

我正在尝试编写一个具有两个下拉列表的 MVC 网页。第二个列表的内容取决于第一个列表中选择的内容。

使用内置的 MVC 函数似乎没有明确的方法来做到这一点,所以我将不得不自己动手。但是我不清楚获得我需要的所有功能的最佳方式......这是“与网络表单相同”:)

我以与此类似的方式创建了下拉列表

但是我不确定如何开发它,以便如果第一个列表中有一个“选定”元素,当它第一次绑定时,它会自动绑定页面加载时的第二个列表。

编辑:为了清楚起见,我能够将过滤后的列表绑定到第二个下拉列表。但是,如果我的模型包含第一个下拉列表的选择,则选择设置正确,但第二个下拉列表未填充。

(我是否必须声明我对 MVC 很陌生,而 Javascript 对我来说就像是某种外星语言?)

Edit2:我对此进行了更多的考虑。显然,我在开发 Web 表单时深受影响,而且我还没有完全“掌握”MVC。我认为我确实有一些我应该在我的模型中捕获的东西(即,如果我已经有了设置两个下拉列表的信息,那么我应该以某种方式在控制器中捕获它并构建预设的下拉列表。而不是试图构建一个“ondatabound”类型的方法并让视图调用它(这是我最初的意图)......现在我需要去研究如何做到这一点:)

0 投票
1 回答
1140 浏览

jquery - 使用 Jquery 问题的级联 DropDownList

所以,我发现这个教程也有示例的代码源,展示了如何使用 Jquery 制作级联下拉列表。我尝试将该代码用于我自己的项目示例,但它似乎不起作用。

控制器:

然后返回 jsonresult 的操作:

风景:

我在哪里做错了什么?

0 投票
1 回答
1242 浏览

ruby-on-rails - Rails 3.1 依赖/级联下拉菜单

我开始掌握 Rails 3.1,我希望有人能指出 Gem 的方向,这将允许我在表单上使用依赖选择(或指出如何在 Rails 3.1 中最好地完成此操作)。我遇到了chained_selects插件,但这似乎依赖于原型,所以在3.1中并不理想。

最简单的例子是汽车品牌/型号:

我有 3 个模型:vehicleMake、vehicleModel 和 vehicleTrim。我还有分配表vehicleMake_vehicleModel 和vehicleModel_vehicleTrim,它们指定了适合每个品牌的模型等。

我有一个车辆模型,我试图用品牌、模型和装饰来填充它。车辆模型属于_vehicleMake、vehicleModel 和vehicleTrim。

如何确保模型的下拉列表仅显示所选品牌的模型(因此用于修剪)?第二点,我如何在我的车型中验证这一点?

谢谢!

0 投票
1 回答
864 浏览

asp.net-mvc-2 - 在 mvc2 asp.net 中提交 ajax 表单时绑定下拉列表

我的要求很简单,我认为有两个下拉菜单。默认情况下填充第一个下拉列表,并且必须根据第一个下拉列表中的值填充第二个下拉列表。

我的看法是

<% } %>

我的控制器是

在这里,我能够发布第一个下拉数据,并在 viewdata/tempdata 中设置第二个下拉数据,并在视图中将数据绑定到第二个下拉。但这不起作用。

目前,当第一个下拉列表更改时,我只是绑定第二个下拉列表。但是如果我想填写一个下拉列表并在两个文本框中显示数据怎么办。在这种情况下我该怎么办?

我该如何解决这个问题。请帮忙。

0 投票
1 回答
3969 浏览

c# - MVC 3 级联下拉列表

我不知道如何准确地拥有 Cascading DropDownLists

我的场景是下一个:

类别有项目,项目有数量取决于机构

我想要两个 DropDownLists 一个,您选择一个类别,当您使用该类别中的项目选择第一个时填充下一个,当您选择项目时,将显示一个包含每个机构数量的表格。

好的,这将是我的 ActionResult

然后,我将有我的两个 DropDownLists 应该将值发布到 Item_ID 和 Category_ID ...第一个类别,然后是项目

这就是我不知道该怎么做......我应该如何放置 URL 或者我应该如何发送它,所以当我发送另一个 ID 时不会混淆,我可以收到我的 ID

如何接收 ActionResult 中每个 DropDownList 的值?应该如何发送?

回答

我从这个网站上找到了答案,只是想知道我做了什么

http://kmsystems.squarespace.com/journal/2009/5/31/aspnet-mvc-cascading-dropdownlists.html

0 投票
2 回答
2269 浏览

jquery - 级联下拉菜单 - 如何暂时禁用下拉菜单上的更改事件以操作选项

我在 jquery 中构建了一个级联下拉列表,并从几个示例中进行了修改。我添加了一项功能,让用户“备份”并重新选择较早的下拉菜单。这会重新加载下一个下拉菜单,并清除和禁用后续下拉菜单。

http://jsfiddle.net/goodeye/gA6GZ/

问题是在第一次通过后,选择元素的更改事件被绑定,所以我认为重新加载新值会导致后来的更改事件触发。

我分离了 .change() 绑定,而不是链接它。我以前在加载选择选项之前将其链接起来。这有助于第一次通过,但不是随后的时间。

对于这个问题,我特别在寻找一种处理这个序列的好方法:

  • 避免改变()
  • 更新下拉列表
  • 设置更改()

这个问题: 在 jQuery 中删除事件处理程序的最佳方法? 有 unbind() 作为主要答案,然后是使用 live() 的后续答案。live() 方法使用了一个让我有点困惑的类,并且没有得到那么多的选票。

重现:
选择第1步,见第2步火。
选择第2步,见第3步火。
再次选择第1步,见第2步火。
然后麻烦开始了:
选择第2步,看第3步火两次。
选择第3步,看第4步火3次。
再次选择第 1 步,看第 2 步触发两次。
等等。
它甚至变得更糟;我会看到第 3 步触发五次。

一些细节:

在实际代码中,这些从 json ajax 调用加载。我从示例中删除了它,并添加了硬编码选项来模拟它,将其范围限定为事件问题。

这从服务器端开始,所以第一个下拉列表已经在 html 中。接下来的三个是从(模拟的)json 调用中加载的。

这些使用类进行识别,因为真实页面有不止一组这样的下拉菜单。该代码使用 $(this) 来小心在选定的一组内工作。

如果只有一个选项,还有一个“自动选择”功能,然后继续下一个选项。该代码在那里,但模拟示例都有多个选项,以避免此问题出现此问题。

提前感谢您的想法!

0 投票
2 回答
4198 浏览

c# - 3 使用 MVC3 & LinqSql 的下拉列表级联

我有 3 个下拉列表,我想用级联制作 3 个下拉列表。我正在将 LinqSql 用于数据库..

我有 3 个表 Product(id,name), Design(id,master_id,name), Model(id,design_id,name) master_id 绑定到 Product(id), design_id 绑定到 Design(id)..

我想创建一个显示产品的下拉菜单,而不是当我选择产品时,它会启用设计下拉菜单,否则它将保持禁用状态。这也是我无法解决的棘手部分,我需要在这里创建第三个很好的解释在选择设计之前将正常禁用的下拉菜单。

他们每个人都会填充一个绑定到他们的较低下拉列表。就像; 产品将启用并填充设计,设计将启用并填充模型。我可以用 2 个下拉菜单来做到这一点,但是当谈到 3 个下拉菜单时,我真的很糟糕(大脑冻结)..

我已经检查了其他问题,找不到适合我自己的任何解决方案。正如我所说,我正在使用 LinqSql,我需要一个关于 3 级联下拉列表的解决方案来处理这种类型的数据。

已经感谢你能做的任何事情!如果你能解释模型-视图-控制器部分和参数以及为什么使用它们,那就太棒了。我是这个 MVC3 的初学者。

0 投票
1 回答
7999 浏览

sql-server-2008 - InfoPath 2010 与 SQL Server 2008 中的级联下拉列表

我开始处理我的第一个 InfoPath 表单。我有一个三个下拉列表(Global FunctionMajor TaskSubtask),它们需要查询 SQL 数据库并根据之前下拉列表中的选定值过滤它们的数据。

到目前为止我做了什么

  1. 我已经添加了数据连接(对于每个表和相应的下拉列表),它只是在数据库中查询表中的所有记录。对于离线模式,每个连接都设置为“在表单模板中存储数据的副本”。

    然后在下拉列表框属性中,我将列表框选项设置为“从外部数据源获取选择”并设置条目字段以选择适当表/下拉列表组合的列。

    但是,当我向数据添加过滤器并尝试预览表单时,“级联”下拉列表中的数据永远不会改变。它仍然有所有的记录。

  2. 因此,我尝试为其中一个级联下拉菜单添加新规则。例如,我为Major Task下拉菜单创建了一个新规则并将其设置如下:

    • 条件为Global Function is not blank
    • 规则类型Action
    • 运行这些操作:
    • 使用数据连接查询:主要任务(仅获取所有记录)

    我在规则/操作中看不到任何地方来过滤数据。

  3. 编辑我刚刚尝试了一个新的数据连接,它具有正确设置关系的所有三个表(GlobalFunctions、、MajorTasksSubtasks)(即 GlobalFunctions.Id = MajorTasks.GlobalFunction)。然后我将下拉列表的数据源设置为这个新连接。但是,这也根本不过滤数据。它们的条目和值如下:

    • 全局功能:
      • 参赛作品:/dfs:myFields/dfs:dataFields/d_1:GlobalFunctions
      • 筛选:<None>
      • 价值:@Id
      • 显示名称:@Summary
    • 主要任务:
      • 参赛作品:/dfs:myFields/dfs:dataFields/d_1:GlobalFunctions/d_1:MajorTasks
      • 筛选:GlobalFunction = Id
      • 价值:@Id
      • 显示名称:@Summary
    • 子任务:
      • 参赛作品:/dfs:myFields/dfs:dataFields/d_1:GlobalFunctions/d_1:MajorTasks/d_1:SubTasks
      • 筛选:MajorTask = Id
      • 价值:@Id
      • 显示名称:@Summary

限制

  • 我不能有任何代码(因为它不能在浏览器中工作,对吧?)
  • 表格必须能够在 Web 或本地计算机上填写(工作站上保存的副本)
  • 当没有连接到 SQL 数据库时应该仍然可以工作

问题

如何在 InfoPath 2010 中实现多个级联下拉列表,并将数据连接到可以在浏览器中工作的 MS SQL 数据库并使用 InfoPath Filler(后者可能没有与数据库的连接)。

SQL 表

表格如下所示:

0 投票
2 回答
507 浏览

jquery - 如何使用 JSON 返回适当的结果以填充级联下拉列表?

我正在尝试根据第一个下拉列表(包含国家)中选择的内容填充第二个下拉列表(包含县)。

我有一个名为 GetCounties 的控制器操作:

注意被注释掉的部分。这对我来说很好,(我从分区列表中获得第一个值,另外两个称为“值 2”和“值 3”。我用它来测试回调,但这是唯一给我的东西结果。使用:

在视图方面没有取得任何成就。调试时,所有正确的值都在那里,但它们不会出现在视图侧的下拉列表中。正如我所说,我得到的唯一结果是使用被注释掉的代码(硬编码值,当然不够好)。我尝试使用 for 循环遍历列表以填充数组,但没有任何效果,我收到错误,例如匿名类型是只读的,所以我无法再次设置它。

这是我的jQuery代码:

分区列表当然是包含所有县的下拉列表,通过使用上面未注释的返回语句,它只返回不变,即包含其所有值,而不仅仅是根据所选国家应该出现的值。所以请我如何用过滤后的结果填充一个数组,以便我可以使用 JSON 将它返回到视图中?我想使用我发布的这个代码,因为它是唯一有效的。我只需要用正确的值交换硬编码值。那就是我遇到麻烦的地方。

请帮我。

0 投票
1 回答
981 浏览

jquery - 如何使用 json 和 knockoutjs 创建主细节级联下拉菜单?

一个简单的主细节场景:服务器列表

其中 Driver 也有一个 Id 和 Name。从服务器上的 MVC 操作以 JSON 形式返回。

现在我有一个 knockoutjs 模型

和一些绑定

问题是:服务器下拉列表被填充,而驱动程序没有。我肯定错过了一些东西。也许我需要使用映射插件?