【问题标题】:ASP.NET UpdatePanel Error htmlfile: Unknown runtime error, updatePanelElement.innerHTML=renderingASP.NET UpdatePanel 错误 htmlfile:未知的运行时错误,updatePanelElement.innerHTML=rendering
【发布时间】:2009-01-13 22:11:58
【问题描述】:

在触发 UpdatePanel 后调试 ASP.NET Web 应用程序时出现此错误:

htmlfile: 未知的运行时错误

并且“updatePanelElement.innerHTML=rendering”在 ScriptResource.axd 文件中突出显示。

【问题讨论】:

    标签: asp.net ajax updatepanel


    【解决方案1】:

    我也遇到了同样的问题。在我的情况下,页面(表格)的设计不正确。这是我的场景中的问题详细信息:

        <table>
    <tr>
    <td>
        <asp:Label id="Lb1" runat="server"/>
    </td>
    </tr>
    <asp:UpdatePanel id="UP1" runat="server">
    <ContentTemplate>
           <!-- controls in Update Panel-->
    </ContentTemplate>
    </asp:UpdatePanel>
    <tr>
    <td>
        <asp:Button id="btn" OnClick="btn_Click" runat="server"/>
    </td>
    </tr>
    </table>
    

    我已经改成

    <table>
    <tr>
    <td>
        <asp:Label id="Lb1" runat="server"/>
    </td>
    </tr>
    **<tr>
    <td>**
    <asp:UpdatePanel id="UP1" runat="server">
    <ContentTemplate>
           <!-- controls in Update Panel-->
    </ContentTemplate>
    </asp:UpdatePanel>
    **</td>
    </tr>**
    <tr>
    <td>
        <asp:Button id="btn" OnClick="btn_Click" runat="server"/>
    </td>
    </tr>
    </table>
    

    问题已解决,将更新面板移动到另一个表格行。 所以我坚信适当的屏幕设计应该能解决这类问题。

    【讨论】:

    • 我在这里遇到了同样的问题,这篇文章解决了它。感谢 suneelk。
    【解决方案2】:

    感谢上面的解释 - 我找到了一个解决方案,方法是用事件需要更新的 li 包装 UpdatePanel。希望对您有所帮助。

    例如

    <li>
    <asp:UpdatePanel runat="server" ID="UpdatePanelCustInfo" UpdateMode="Conditional" RenderMode="Inline">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="ddlCountry" />
        </Triggers>
        <ContentTemplate>
            <label>State:</label>
            <asp:DropDownList ID="ddlStateProvince" AutoPostBack="False" runat="server" CssClass="adminInput">
            </asp:DropDownList>
        </ContentTemplate>
    </asp:UpdatePanel>
    </li>
    

    【讨论】:

      【解决方案3】:

      同样的错误是错误地将更新面板放置在标签之间,而不是嵌套标签。那个修复做到了,所以我从这里拿走了它:

      <table>
      <tr>
      <asp:UpdatePanel runat="Server">
      <ContentTemplate>
      <td>
      
          //code here
      
      </td>
      </ContentTemplate>
      </asp:UpdatePanel>
      </td>
      </table>
      

      到:

      <table>
      <tr>
      <td>
      <asp:UpdatePanel runat="Server">
      <ContentTemplate>
      
          //code here
      
      
      </ContentTemplate>
      </asp:UpdatePanel>
      </td>
      

      【讨论】:

        【解决方案4】:

        我遇到了同样的错误,但解决了。

        我在 UpdatePanel 中嵌套了 html 表单。只需删除 Form 标签即可解决问题。

        【讨论】:

          【解决方案5】:

          这似乎是因为我的 UpdatePanel 在有序列表

            容器中。我的 UpdatePanel 的 ContentTemplate 中有列表项
          1. 标签。
            <ol>
                <li>...</li>
                <asp:UpdatePanel ...>
                    <ContentTemplate>
                        <li id="lione" runat="server">...</li>
                        <li id="litwo" runat="server">...</li>
                    </ContentTemplate>
                    <Triggers>
                        ...
                    </Triggers>
                </asp:UpdatePanel>
                <li>...</li>
            </ol>
            

            这样对我来说很有意义,但我想我需要重新考虑我的页面布局。

          【讨论】:

          • 这实际上会呈现为
            1. ...
            2. ...
            3. ...
            。我不知道这是否是问题所在,但它肯定是无效的 html。
          • 谢谢我遇到了同样的问题,但是有了定时器,我只是将定时器移出更新面板。
          【解决方案6】:

          说这让我发疯是轻描淡写。我收到了与 OP 描述的相同的错误,并玩弄了我的 HTML,试图找出为什么我无法写入 p 标签中的 div。最后,我复制了我的页面 HTML,只是为了弄乱我页面上排列的 HTML,发现它与我正在摆弄的特定 UpdatePanel 无关。我的页面底部的正文内容中有 javascript 脚本标签,我不知道究竟是为什么,但 IE8 讨厌这种安排。我能够删除正文内容中的所有脚本,并将其放在页面的 head 标签中,这个问题就消失了。高温

          【讨论】:

            猜你喜欢
            • 2012-07-09
            • 1970-01-01
            • 2011-04-16
            • 2012-12-09
            • 1970-01-01
            • 2021-08-14
            • 1970-01-01
            • 1970-01-01
            • 2016-04-20
            相关资源
            最近更新 更多