asp.net - 为什么在设置 AssociatedUpdatePanelId 时不会触发更新进度?

标签 asp.net updatepanel

当我分配 AssociatedUpdatePanelId 时,当我选择状态时不会显示进度,但是当我将其留空时,它会显示进度。

这是 aspx 标记:

<div>
    <asp:ListBox ID="lstStates" runat="server" AutoPostBack="True"
    OnSelectedIndexChanged="lstStates_SelectedIndexChanged" SelectionMode="Multiple">
    </asp:ListBox>
</div>
<div>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    <asp:Panel ID="pnlCounty" runat="server">
    <asp:ListBox ID="lstCounties" runat="server" SelectionMode="Multiple">
    </asp:ListBox>
    </asp:Panel>
    </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="lstStates" EventName="SelectedIndexChanged" />
    </Triggers>
    </asp:UpdatePanel>
    <asp:UpdateProgress ID="UpdateProgress2" runat="server" DisplayAfter="1"
                        AssociatedUpdatePanelID="UpdatePanel1">
    <ProgressTemplate>
    <img src="../images/loader2.gif" />
    Loading Counties...
    </ProgressTemplate>
    </asp:UpdateProgress>
</div>

最佳答案

根据this article ,UpdatePanel 的外部触发器不会触发关联的 UpdateProgress,因为启用 UpdateProgress 控件的实现会在控件层次结构中搜索调用控件;控制层次结构中不会出现外部触发器。

然而,这篇文章确实建议注入(inject)一些 JavaScript 来弥补这个错误。我已将其修改为(希望)满足您的需求:

<script type="text/JavaScript" language="JavaScript">
    function pageLoad()
    {      
       var manager = Sys.WebForms.PageRequestManager.getInstance();
       manager.add_endRequest(endRequest);
       manager.add_beginRequest(OnBeginRequest);
    }
    function OnBeginRequest(sender, args)
    {
      var postBackElement = args.get_postBackElement();
      if (postBackElement.id == 'lstStates')
      { 
     $get('UpdateProgress2').style.display = "block";  
      }
   }
</script>

关于asp.net - 为什么在设置 AssociatedUpdatePanelId 时不会触发更新进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/996957/

相关文章:

c# - Ajax 计时器在处理另一个请求时不轮询

ASP.NET OnTextChanged无法从更新面板内部触发

asp.net - 为什么需要 PUT 或 DELETE Http 动词?

c# - CSS 不会通过捆绑呈现,如果直接写在页面上可以正常工作

asp.net - 进度条不是一个函数

javascript - updatepanel 更新后如何调用 javascript 函数

asp.net - 不活动时停止 UpdatePanel

asp.net - 自动返回后读取POST数据

c# - 将 ASP.NET Controller 路由与 AngularJS 对象 id 相结合

c# - 是否可以在 UpdatePanel 中重新执行 javascript?