使用ASP.NET AjaxControltoolkit CascadingDropDown(v15.1.4),我有多个下拉列表(为了这个问题的简单,有两个下拉列表)
<!-- Top Level -->
<asp:DropDownList runat="server" ClientIDMode="Static" ID="drp_level1" AutoPostBack="true"></asp:DropDownList>
<!-- Second Level -->
<asp:DropDownList runat="server" ClientIDMode="Static" ID="drp_level2" AutoPostBack="true"></asp:DropDownList>
<ajaxToolkit:CascadingDropDown ID="casc_l2" ClientIDMode="Static" runat="server" Category="x" ParentControlID="drp_level1" TargetControlID="drp_level2" ServicePath="~/method.asmx" ServiceMethod="x" />
这种方法的问题在于级联下拉列表正在更新级别2的内容(正确),但随后又触发了另一个回发(重新加载页面,然后级联重新运行,触发另一个回发等等)上。
为清晰起见而更新:下拉列表均用作过滤器...
我尝试了什么(失败了)
<script lang="javascript" type="text/javascript">
Sys.Application.add_load(initializePage);
function initializePage() {
$find('casc_l2').add_populating(stop_auto);
$find('casc_l2').add_populated(start_auto);
}
function stop_auto(sender, e) {
$find('drp_level2').set_autopostback(false);
}
function start_auto(sender, e) {
$find('drp_level2').set_autopostback(true);
}
</script>
解决方法: - 我可以禁用自动回发并强制用户手动点击按钮重新提交..但这很麻烦。
我想要的是下拉列表的“用户选择”导致回发,但是对于下拉列表的“级联重新填充”不是。