я столкнулся с небольшой проблемой здесь:Javascript внутри UserControl внутри UpdatePanel неопределен
у меня есть страница ASPX, которая содержит панель обновления, которая имеет место держатель (в шаблоне контента), содержащих различные UserControls, которые показывают/скрыть в зависимости от определенных условий.
У одного из них есть длинный скрипт внутри с функцией инициализации, которая имеет элементы управления, полученные с помощью тегов сервера (<% # myCtrl.ClientID%>), чтобы получить значения и т. Д., И дело в том, что когда я вызываю эту функцию один раз UpdatePanel завершает обновление, он просто говорит, что это не определено ..
, как будто мой UserControl сценарий не был замечен на всех,
Вот моя ASPX страница с вызовом функции «initializeFees», когда обновление будет завершено:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true"
EnablePageMethods="true">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(initializeFees);
</script>
<div class="Registration_ProgressContent">
<uc3:Ctrl_RegistrationProgress ID="Ctrl_RegistrationProgress1" runat="server" OnSelectedIndexChanged="changeStep" />
</div>
</div>
<div class="Registration_StepContent">
<asp:PlaceHolder runat="server">
<uc1:Ctrl_RegistrationGeneral ID="Ctrl_RegistrationGeneral1" runat="server" Visible="False" />
<uc4:Ctrl_RegistrationFee ID="Ctrl_RegistrationFee1" runat="server" Visible="False" />
, и вот мой "UC4: Ctrl_RegistrationFee" Код HTML:
<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="Ctrl_RegistrationFee.ascx.vb"
Inherits="MDSInscription.Ctrl_RegistrationFee" %>
<script type="text/javascript">
//Validateurs
var valTeam;
var valEmail;
var imgName;
function initializeFees() {
valTeam = $('#valCreateTeamName');
valEmail = $('#valCreateEmail');
$("#accordion").accordion({
//activate: function (event, ui) {
// // validateSelection();
//}
});
с кодом позади (VB.NET ..... # радость ..):
Private Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
ScriptManager.RegisterClientScriptBlock(Me, Page.GetType(), "Init", "initializeFees();", True)
End Sub
это код я получил после того, как в поисках более часа, и я получаю следующее сообщение об ошибке:
Uncaught ReferenceError: initializeFees is not defined
, если вы чувствуете, как вы можете помочь, спасибо!
У меня почти такая же проблема. Вы решили это каким-то образом? Я предполагаю, что AJAX вызывает проблему, потому что раньше у меня не было этой проблемы на других страницах. – Nurp
yep проблема решен! используйте функцию pageLoad, вне вашей панели обновления; он будет срабатывать каждый раз, когда обновляется панель обновления. – Shide
Хорошо, спасибо, но это было совсем не то, что мне нужно. Это может помочь кому-то еще :) – Nurp