由asp.net SciptManager控件生成的JavaScript似乎有一個bug,並且不能處理隱藏的UpdatePanels。當一個更新面板中的控件嘗試使另一個更新面板可見時,會引發JavaScript錯誤。隱藏面板內的ASP.NET updatepanel可能的bug
這是ASP.Net AJAX的錯誤嗎?有沒有人有任何想法如何解決這個問題?
這裏是我想要做的
<script type="text/C#" runat="server">
protected void LinkButton1_Click(object sender, EventArgs e)
{
Panel1.Visible = true;
}
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click" Text="Show Panel"></asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Panel ID="Panel1" runat="server" Visible="false">
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
blah bla blah
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
這是「LinkButton1」點擊鏈接時被拋出的JavaScript錯誤的例子。此錯誤來自由asp.net ScriptManager控件生成的JavaScript
Error: Sys.InvalidOperationException: Could not find UpdatePanel with ID 'ctl00_ContentPlaceHolder1_UpdatePanel2'
感謝徹底反應等。 你會認爲頁面請求管理器會足夠聰明,以實現第二個更新面板不會呈現在頁面上。 你的第二個建議接近我試圖做的事情。但是這樣做意味着更新面板將不得不圍繞佔位符的所有內容,在我的情況下,只有一小部分內容需要使用ajax。 – MakkyNZ 2010-05-30 05:45:52
爲什麼不只是將更新面板和佔位符包裝在僅需要更新的內容中呢? – 2010-05-30 20:16:11