2

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

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

其中一个内部有一个很长的脚本,其中有一个初始化函数,该函数具有使用服务器标签(<% #myCtrl.ClientID%>)检索的控件以获取值等。问题是,当我在更新面板完成更新后调用此函数时,它只是说它是未定义的..

好像我的 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 

如果您觉得可以提供帮助,谢谢!

4

1 回答 1

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 ...
        }
于 2013-09-23T12:59:43.470 回答