【发布时间】:2013-07-25 16:40:34
【问题描述】:
我在这里遇到了一个小问题:
我有一个 aspx 页面,其中包含一个更新面板,该面板有一个占位符(在其内容模板中),其中包含根据特定条件显示/隐藏的不同用户控件。
其中一个有一个很长的脚本,里面有一个初始化函数,该函数具有使用服务器标签 () 检索的控件以获取值等。问题是,当我调用这个函数一次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
如果您觉得可以提供帮助,谢谢!
【问题讨论】:
-
我遇到了几乎同样的问题。你有没有以任何方式解决它?我的猜测是 AJAX 导致了这个问题,因为我之前在其他页面上没有这个问题。
-
是的,问题解决了!在更新面板之外使用 pageLoad 函数;每次更新面板刷新时都会触发它
-
好的,谢谢,但这并不是我真正需要的。不过它可能对其他人有所帮助:)
标签: asp.net vb.net user-controls updatepanel scriptmanager