【发布时间】:2014-08-18 11:05:12
【问题描述】:
我想通过 javascript (jQuery) 在客户端复制一个级联下拉列表。
您可以在第一个框中看到要复制的级联下拉列表。它们将使用 AJAX 控件工具包的 CascadingDropDown 控件在 ASP.NET 中呈现。这非常有效。
当您单击“添加其他类别”时,第一个框的所有下拉列表都将被复制。 (见第二个方框)
这是这个动作的点击脚本(使用jQuery的clone()):
categoryRow.clone(true, true).insertBefore(containerRow);
subCategory1Row.clone(true, true).insertBefore(containerRow);
subCategory2Row.clone(true, true).insertBefore(containerRow);
subCategory3Row.clone(true, true).insertBefore(containerRow);
clone() 函数还复制 CascadingDropDown 控件的隐藏 ClientState 字段。
很遗憾,复制的 CascadingDropDownLists 的级联功能不起作用。
如何最好地创建/复制级联 drodwownlists?或者您有任何其他想法/更好的方法来做到这一点?
【问题讨论】:
-
我担心在这种情况下复制 DOM 将不起作用。您需要在回发中将另一组 cascadingdropdowns 添加到页面的 Controls 集合中。为方便起见,我建议创建一个 CategoryControl.ascx。
-
级联功能消失的原因是因为我相信当您复制下拉列表时,ID 也会被复制。使用 jQuery 在 DOM 中有多个 id 是一个很大的禁忌。
标签: javascript jquery asp.net ajaxcontroltoolkit cascadingdropdown