Ajax更新面板随机错误'PRM_MissingPanel'
Ajax Update Panel Random Error 'PRM_MissingPanel'
我使用 Visual Studio 中的 Ajax 更新面板来处理 post 我在网站上的搜索功能的支持。 (IE 搜索成员)将生成带有结果的网格视图。每次我从 TFS 获取最新版本时,它都会抛出此错误:
unhandled exception at line 1, column 132567 in http://localhost:58921/bundles/MsAjaxJs? JavaScript runtime error: Unable to get the property 'PRM_MissingPanel' of undefined or null reference
坏了之后,我可以再次调试,直到我得到更新的版本,它才会坏。
我用谷歌搜索了很多,但找不到 PRM_MissingPanel 是什么。
关于为什么会发生这种情况有什么想法吗?
MsAjaxBundle 来自 ScriptManager,它是在我创建 Web App 时生成的:
<asp:ScriptManager runat="server">
<Scripts>
<asp:ScriptReference Name="MsAjaxBundle" />
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Name="bootstrap" />
<asp:ScriptReference Name="respond" />
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
<asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
<asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
<asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
<asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
<asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
<asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
<asp:ScriptReference Name="WebFormsBundle" />
</Scripts>
</asp:ScriptManager>
问题是我隐藏了一个 div 里面有更新面板,然后将可见性更改为 true,但更新面板实际上并没有出现。
我将其更改为以下内容,以便更新面板始终存在,而不是消失和重新出现:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div visible="false" id="Search" runat="server">
<div style="overflow: hidden;">
这里有同样的问题:在我的 Login.aspx 页面上,它似乎突然无缘无故地发生了。
建议的解决方案不适用于我的情况,因为我的面板没有被隐藏,而且同一个页面曾经在一年内未经修改地工作。
这是一个非常简单的页面 - 我几乎什么都试过了,没有运气......直到我将 ID="SomeUnrelevantIDhere" 添加到 asp:UpdatePanel,尽管我没有在代码隐藏中使用它,即使它已经工作了一年而没有在那里设置明确的 id...
所以我的解决方案是将 ID="something" 添加到 .ascx 文件中的更新面板。
我使用 Visual Studio 中的 Ajax 更新面板来处理 post 我在网站上的搜索功能的支持。 (IE 搜索成员)将生成带有结果的网格视图。每次我从 TFS 获取最新版本时,它都会抛出此错误:
unhandled exception at line 1, column 132567 in http://localhost:58921/bundles/MsAjaxJs? JavaScript runtime error: Unable to get the property 'PRM_MissingPanel' of undefined or null reference
坏了之后,我可以再次调试,直到我得到更新的版本,它才会坏。
我用谷歌搜索了很多,但找不到 PRM_MissingPanel 是什么。
关于为什么会发生这种情况有什么想法吗?
MsAjaxBundle 来自 ScriptManager,它是在我创建 Web App 时生成的:
<asp:ScriptManager runat="server">
<Scripts>
<asp:ScriptReference Name="MsAjaxBundle" />
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Name="bootstrap" />
<asp:ScriptReference Name="respond" />
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
<asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
<asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
<asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
<asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
<asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
<asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
<asp:ScriptReference Name="WebFormsBundle" />
</Scripts>
</asp:ScriptManager>
问题是我隐藏了一个 div 里面有更新面板,然后将可见性更改为 true,但更新面板实际上并没有出现。
我将其更改为以下内容,以便更新面板始终存在,而不是消失和重新出现:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div visible="false" id="Search" runat="server">
<div style="overflow: hidden;">
这里有同样的问题:在我的 Login.aspx 页面上,它似乎突然无缘无故地发生了。
建议的解决方案不适用于我的情况,因为我的面板没有被隐藏,而且同一个页面曾经在一年内未经修改地工作。
这是一个非常简单的页面 - 我几乎什么都试过了,没有运气......直到我将 ID="SomeUnrelevantIDhere" 添加到 asp:UpdatePanel,尽管我没有在代码隐藏中使用它,即使它已经工作了一年而没有在那里设置明确的 id...
所以我的解决方案是将 ID="something" 添加到 .ascx 文件中的更新面板。