第一个面板更新后会触发UpdateProgress

时间:2019-06-03 15:18:21

标签: c# panel progress

我有一个与UpdatePanel关联的UpdateProgress。问题是直到第二次更新后才触发。

Ì有一个ID ==“ uppGeneric”的常规UpdatePanel和一个ID =“ uppAgrupar”的子项,其内部有一个LinkBut​​ton。当我单击LinkBut​​ton时,它不会触发UpdateProgress栏。

<asp:UpdatePanel ID="uppGeneric" runat="server" UpdateMode="Conditional">
   <ContentTemplate>
      <div class="row">
         <div class="col-md-12 mx-auto">
             <br />
             <asp:UpdateProgress ID="upCargando" DynamicLayout="true" runat="server" AssociatedUpdatePanelID="uppAgrupar">
                  <ProgressTemplate>
                      <div class="progress">
                          <div class="indeterminate" style="width: 100%"></div>
                      </div>
                  </ProgressTemplate>
              </asp:UpdateProgress>
          </div>
       </div>

     <div class="row">
          <div class="col-md-6 mx-auto">
             <asp:UpdatePanel ID="uppAgrupar" runat="server" UpdateMode="Conditional">
                   <ContentTemplate>
                        <asp:LinkButton ID="btnAgrupar" runat="server" CssClass="el_s btn btn-info btn-block" OnClick="btnAgrupar_Click"><i class="fa fa-search"></i> (S) BUSCAR</asp:LinkButton>
                   </ContentTemplate>
                   <Triggers>
                      <asp:AsyncPostBackTrigger ControlID="btnAgrupar" EventName="Click" />
                   </Triggers>
             </asp:UpdatePanel>
         </div>
      </div>

然后在后面的代码中执行(确定):

uppAgrupar.Update();

但什么也没发生。

1 个答案:

答案 0 :(得分:0)

我找到了部分解决方案。

UpdateProgress

<asp:LinkButton ID="btnAgrupar" runat="server" CssClass="el_s btn btn-info btn-block" OnClientClick="activar_barra()" OnClick="btnAgrupar_Click"><i class="fa fa-search"></i> (S) BUSCAR</asp:LinkButton>

生成下一个HTML和CSS:

enter image description here

哪个具有“显示:无;”

问题在于显示属性未设置为“ display:block;”在第一个按钮上单击。

因此,我的解决方案是创建一个javascript函数,以更改在事件“ onClientClick”上触发的显示属性。

    function activar_barra()
    {
        document.getElementsByClassName('progress')[0].parentNode.style.display = "block";
    }

和javascript函数是(它可以通过ClientID访问,但结果相同)

import { withStyles } from '@material-ui/core/styles'

const getStyles = theme => ({
  fooBar: {
    ...
  },
})

...
export default withStyles(getStyles)(MyComponent)