updatepanel里面的Usercontrol里面的javascript是未定义的

时间:2013-07-25 16:40:35

标签: asp.net vb.net user-controls updatepanel scriptmanager

我在这里面临一个小问题:

我有一个aspx页面,其中包含一个更新面板,其中包含一个占位符(在其内容模板中),其中包含根据特定条件显示/隐藏的不同userControl。

其中一个内部有一个长脚本,其中包含一个初始化函数,该函数使用服务器标签(<%#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 .....#joy ..):

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 

如果你觉得自己可以提供帮助,那么,谢谢!

1 个答案:

答案 0 :(得分:0)

问题通过以下脚本解决,我放在更新面板之外:

    function pageLoad() {
        $(".datepicker").datepicker({
            changeMonth: true,
            changeYear: true,
            minDate: "-100Y",
            maxDate: "-15Y",
            dateFormat: "dd/mm/yy",
            yearRange: "1913:2300"
        });
        //more Code executed on each postback from the update panel ...
        }