更新:问题是js在UserControl中。
我有以下脚本
<script type="text/javascript">
var jSonUrl = '<%= ResolveUrl("~/Autocomplete/LocalityByPostalCode.ashx") %>';
var txtPostalCode = '#<%= this.txtPostalCode.ClientID %>';
var txtLocality = '#<%= this.txtLocality.ClientID %>';
$(function () {
var refresh = function () {
var txtPostalCode = '#<%= this.txtPostalCode.ClientID %>';
var txtLocality = '#<%= this.txtLocality.ClientID %>';
//for table row
onEachPageRefresh(txtPostalCode, txtLocality);
}
function onEachPageRefresh(paramPostalCode, paramLocality) {
$(paramPostalCode).blur(function (ev) {
var postalCode = $(this).val();
if (postalCode.length != 4)
return;
$.get(jSonUrl + '?' + postalCode, null, function (responseText, textStatus) {
var txtLoc = $(paramLocality).val('');
if (responseText.match(/\|/)) {
txtLoc.hide();
var all = responseText.split('|');
var select = $('<select />');
for (var i in all) {
select.append('<option>' + all[i] + '</option>');
}
txtLoc.val(all[0]);
txtLoc.parent().append(select);
select.change(function () { $(paramLocality).val($(this).val()) });
} else {
txtLoc.parent().find('select').remove();
txtLoc.show().val(responseText);
}
}, 'text');
});
}
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function () {
refresh();
});
refresh();
});
</script>
我遇到的问题如下:如果我使用英语,它就可以了。如果我切换到匈牙利语,它不起作用。问题是这个脚本适用于网站的其他页面。事件不会发生。该技术是ASP.NET Web表单。
更新
确定。这是更新:
我将脚本硬编码到Page,而不是像这样的
用户控件 var jSonUrl = '<%= ResolveUrl("~/Autocomplete/LocalityByPostalCode.ashx") %>';
var txtPostalCode = '#MainContent_ucMainBuilding_txtPostalCode';
var txtLocality = '#MainContent_ucMainBuilding_txtLocality';
它有效。所以问题是js在UserControl中。
答案 0 :(得分:0)
尝试
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(function(){
refresh();
});
而不是
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function () {
refresh();
});