2013-10-22 78 views
0

功能C#ASP.net站点中间的Ajax面板更新。功能中间的Ajax面板更新

这是按钮点击。我希望在函数的其余部分继续之前将LbError.Text更新为“” 。这是我现在的代码。

protected void BUpload_Click(object sender, EventArgs e) 
     { 
      LbError.Text = ""; 

      UpdatePanel1.Update(); //// need it to update here before it moves on 
            but it waits till the end to update the lablel 
     Exicute functions..... 
     ....... 
     ....... 
     } 





<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
<contenttemplate> 
<asp:Label ID="LbError" runat="server" CssClass="failureNotification" Text=""></asp:Label> 
<br /><br /> 
<br /><br /> 
    <asp:TextBox ID="NewData" runat="server"></asp:TextBox><br /> 
    then click 
    <asp:Button ID="BUpload" runat="server" Text="Upload New Data" 
     onclick="BUpload_Click"/><br /> 

我试过的东西包括有另一个UpdatePanel只是和相同的结果。任何帮助将不胜感激。

回答

1

您可以使用PageRequestManager来完成这项工作。这里是工作示例。 标记:

<asp:ScriptManager ID="sm" runat="server" /> 
     <script type="text/javascript"> 
      var prm = Sys.WebForms.PageRequestManager.getInstance(); 
      prm.add_initializeRequest(InitializeRequest); 
      function InitializeRequest(sender, args) { 
       $get('LbError').textContent = ''; 
      } 
     </script> 
     <asp:Label ID="LbError" runat="server" CssClass="failureNotification" Text="This is a label"></asp:Label> 
     <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
      <ContentTemplate> 
       <br /> 
       then click 
       <asp:Button ID="BUpload" runat="server" Text="Upload New Data" 
        OnClick="BUpload_Click" /><br /> 

       <asp:Label ID="Label1" runat="server" CssClass="failureNotification" Text=""></asp:Label> 
      </ContentTemplate> 
     </asp:UpdatePanel> 

和代码背后的C#:

protected void BUpload_Click(object sender, EventArgs e) 
{ 
    UpdatePanel1.Update(); 
    System.Threading.Thread.Sleep(5000); 
    Label1.Text = "Done"; 
}