【发布时间】:2012-07-16 16:40:51
【问题描述】:
我正在寻找一些示例代码(如果有的话)来处理下面的场景。
当您添加新项目时,我想制作一些级联(过滤)选定框,例如 ebay.com 使用。
我遇到了困难,因为
- 可以有许多父子关系。可以存在具有四个或更多子类别的类别。
- 我不确定当有人单击父类别时是否应该通过 jquery 动态添加选择框,或者在页面上有许多隐藏的选择框并根据需要隐藏/显示。
- 我确定我可以查到这个,但我还不确定如何使用通过 javascript 在后面的代码中动态添加的表单元素。
有人知道eBay是怎么做到的吗?
数据会是这样的:
硬币美国 -> 美元 -> 摩根 -> 1894-98
或
邮票 -> 美国 -> 封面 -> FDC -> 1931-1940
数据将存储在一个sql表中,结构如下:
标识 |类别文字 |父母身份
在树中选择的每个级别都会在其右侧生成一个新的选择框,其中包含可用的子值。
【问题讨论】:
-
如果您使用的是 ASP.NET 表单,您是否考虑过使用AJAX Control Toolkit cascading dropdowns?这将允许您从服务器代码中填充下拉列表,如果您将选项存储在某处的数据库中,这将特别有用。
-
我确实考虑过,但我并不想最初在页面上显示 5 个下拉菜单。我认为有人应该能够进来并选择在 Coins US -> Dollars 中添加一些东西,而不会看到 Morgan 或 1897-98 的选择框,如果有办法隐藏未使用的可能会很有趣的话。跨度>
-
我自己没有尝试过,但是您可以从客户端
onchange事件中更改“下一个”下拉列表的visibility或display。只要您不执行任何回发,就不会丢失样式。不过,这在未来可能会变得一团糟,因为您将通过 JavaScript 和 WebMethod 操作下拉菜单。