我有一个 DynamicPopulateExtender 控件,我希望它根据 asp:DropDownList 的值呈现 html。问题是如何编写抓取下拉列表值的javascript,将其分配给DynamicPopulate控件的contextKey,然后触发更新。
目前,当我到达 JavaScript 中的 populate() 方法时,我的代码会冻结,所以我认为我的 JavaScript 需要一些工作。
这是我的 DropDownList、Extender 和我要更新的面板:
<asp:DropDownList id="cboResponse" cssclass="DataControl" DataTextField="lov_label" DataValueField="lov_cd" runat="server" />
<asp:Panel ID="pSectFunc" runat="server" />
<ajaxToolkit:DynamicPopulateExtender ID="DPE" runat="server" TargetControlID="pSectFunc" ServicePath="/ajax/SAT.asmx" ServiceMethod="GetPanelHTML" />
这是我目前拥有的javascript。我可以从下拉菜单中获取值到 ServiceId,但我无法找到并使用正确的 ContextKey 调用扩展程序:
<script type="text/javascript">
function ValPickListSelection(val, args) {
args.IsValid = document.getElementById(val.controltovalidate).selectedIndex > 0;
}
//Need to update the contextKey of the DynamicPopulateExtender with the correct
//ServiceId so it can render the correct sector-function combination.
$(document).ready(function () {
$('#<%= cboResponse.ClientID %>').change(function () {
var dpe = $('#<%= DPE.ClientID %>');
var ServiceId = Number($(this).val());
if (ServiceId > 0) {
dpe.ContextKey = ServiceId;
dpe.populate();
}
});
});
</script>