使用 javascript 更新用户控件时如何同步后面的代码?
How do you sync the code behind when updating a user control using javascript?
我有一个自定义用户控件,用作可重复使用的 ASP
DropDownList
,它从 RESTful
端点
异步检索数据
<myControls:AjaxDropDown ID="ddlDropdown" runat="server" ServicePath="/MyWebService2.asmx/GetLetterTypes"/>
在用户控件中,我正在 $.ajax
中通过成功更新下拉内容
$.ajax({
type: "GET",
dataType: "json",
url: $('#<%=textBoxUrlPath.ClientID %>').val(),
contentType: "application/json; charset=utf-8",
async: true,
success: function(res) {
onGetLetterTypesSuccess(res);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
如何将 $.ajax
检索到的数据与用户控件的隐藏代码同步?
我使用 $.ajax
而不是通过 UpdatePanel
控件进行部分更新的原因是 UpdatePanel 无法在单个页面上同时进行多个异步调用。
我想您可以使用 asp.net 隐藏字段来存储选定的值,但是是的,它可能通过客户端变得不必要地麻烦。
我决定不走这条客户端更新路线,因为它直接反对 Web 窗体结构。相反,我将采用一种同步解决方案,即从后面的代码进行此调用并在为页面提供服务之前填充 DropDownList。
我有一个自定义用户控件,用作可重复使用的 ASP
DropDownList
,它从 RESTful
端点
<myControls:AjaxDropDown ID="ddlDropdown" runat="server" ServicePath="/MyWebService2.asmx/GetLetterTypes"/>
在用户控件中,我正在 $.ajax
$.ajax({
type: "GET",
dataType: "json",
url: $('#<%=textBoxUrlPath.ClientID %>').val(),
contentType: "application/json; charset=utf-8",
async: true,
success: function(res) {
onGetLetterTypesSuccess(res);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
如何将 $.ajax
检索到的数据与用户控件的隐藏代码同步?
我使用 $.ajax
而不是通过 UpdatePanel
控件进行部分更新的原因是 UpdatePanel 无法在单个页面上同时进行多个异步调用。
我想您可以使用 asp.net 隐藏字段来存储选定的值,但是是的,它可能通过客户端变得不必要地麻烦。
我决定不走这条客户端更新路线,因为它直接反对 Web 窗体结构。相反,我将采用一种同步解决方案,即从后面的代码进行此调用并在为页面提供服务之前填充 DropDownList。