【问题标题】:Exclude Div in updatepanel Asp.Net在更新面板 Asp.Net 中排除 Div
【发布时间】:2015-12-29 14:40:16
【问题描述】:

Asp.Net 4.5 (WebForms)

如何从异步回发中排除容器 div?容器正在渲染 webgl。我尝试按照其他搜索的建议将其添加到触发器中,但出现错误。

错误

  • 通过 RegisterAsyncPostBackControl 注册 ID 为“容器”的控件...

注意

  • 如果我将容器移到更新面板之外,它可以工作,但是位置会出错。

示例

 <div id="main" class="main">
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
            <ContentTemplate>

                <div>
                    <div>
                       more controls ...
                    </div>
                </div>

                <div id="container" class="container" runat="server"></div>

                <div>   
                     more controls ...
                </div>

              </ContentTemplate>
           <Triggers>
               <asp:PostBackTrigger ControlID="container" />
           </Triggers>
        </asp:UpdatePanel>
    </div>

【问题讨论】:

  • 为什么不为 container div 上方和下方的 div 使用 2 个单独的更新面板?
  • @vnikhil 好问题。这恰好嵌套在其他更新面板中。我只是把所有这些乱七八糟的东西都从这个例子中去掉了。否则我肯定会使用 2 个单独的更新面板。
  • 我认为您发现了 UpdatePanel 的限制之一。或许最好放弃 UpdatePanel,而是将 AJAX 调用(可能使用 jQuery 之类的帮助程序库)编码到服务器端?结果通常更易于理解和调试,并减少了带宽使用和服务器负载。

标签: c# jquery asp.net visual-studio web-applications


【解决方案1】:

对于短期解决方案,我分离出所有更新面板以围绕 div 流动,将其从确实有效的异步回发中删除。这是 vnikhil 建议的。

对于长期解决方案,我会考虑来自已发布 cmets 的 mason 的建议。

【讨论】:

    猜你喜欢
    • 2016-04-17
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多