2
我現在面臨一個小問題在這裏:JavaScript的用戶控件裏面的UpdatePanel裏面是未定義
我有一個包含有一個佔位符的更新面板(在其內容模板)包含不同的用戶控件,顯示一個aspx頁面/根據特定條件隱藏。
其中一個腳本里面有一個初始化函數,它具有用服務器標籤(<%#myCtrl.ClientID%>)檢索到的控件來獲取值等等。事情是,當我調用這個函數一次在UpdatePanel完成更新,它只是說,這是不確定的..
彷彿我的用戶腳本根本看不見,
這是我與「initializeFees」函數調用aspx頁面時,更新完成後:
<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問題解決了!在你的updatepanel之外使用pageLoad函數;它會在每次更新面板刷新時觸發 – Shide
好的,謝謝,但它不是我真正需要的。它可能會幫助其他人:) – Nurp