2010-02-10 12 views
2

У меня есть следующий код, и я не могу обновить UpdatePanel. Есть идеи? Мне интересно, возможно ли сделать обновление с помощью метода async?Обновление сетки изнутри AsyncFileUpload uploadCompleted event

<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional"> 
       <ContentTemplate> 
       <asp:DataGrid ID="dgFiles" runat="server" DataKeyField="ConfigurationFileId" AutoGenerateColumns="false" GridLines="None" 
       OnItemCommand="dgFiles_ItemCommand" Width="40%"> 
       <Columns> 
        <asp:TemplateColumn> 
         <ItemTemplate> 
          <asp:Label ID="lblFile" runat="server" Text='<%#Eval("SourceFileName") %>'></asp:Label> 
         </ItemTemplate> 
        </asp:TemplateColumn> 
        <asp:TemplateColumn> 
         <ItemTemplate> 
          <asp:LinkButton ID="hypDelete" runat="server" Text="Delete" CssClass="blue" CommandName="Delete" CommandArgument="5"></asp:LinkButton> 
         </ItemTemplate> 
        </asp:TemplateColumn> 
       </Columns> 
       </asp:DataGrid> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
      <asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional"> 
       <ContentTemplate> 
       <ajaxToolkit:AsyncFileUpload ID="Upload1" runat="server" UploaderStyle="Modern" Width="400px" 
        Style="visibility: hidden" OnUploadedComplete="Upload1_Complete" OnClientUploadComplete="UploadComplete" /> 

       <asp:DataGrid ID="dgAddFiles" runat="server" DataKeyField="ConfigurationFileId" AutoGenerateColumns="false" 
        Width="40%" Style="visibility: hidden"> 
         <Columns> 
          <asp:TemplateColumn> 
          <ItemTemplate> 
           <asp:Label ID="lblFile" runat="server" Text='<%#Eval("SourceFileName") %>'></asp:Label> 
          </ItemTemplate> 
          </asp:TemplateColumn> 
          <asp:TemplateColumn> 
          <ItemTemplate> 
           <asp:LinkButton ID="hypDelete" runat="server" Text="Delete" CssClass="blue" CommandName="Delete" CommandArgument="5"></asp:LinkButton> 
          </ItemTemplate> 
          </asp:TemplateColumn> 
         </Columns> 
        </asp:DataGrid> 
       </ContentTemplate> 
      </asp:UpdatePanel> 




protected void Upload1_Complete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e) 
    { 
    if (Upload1.HasFile) 
    { 
     Upload1.SaveAs(Server.MapPath("~/files/temp/") + Upload1.FileName); 
     byte[] data = Upload1.FileBytes; 
     var file = new Files(); 
     file.FileId = Guid.NewGuid(); 
     file.FileName = Upload1.FileName; 
     file.Data = data; 

     using (var ctx = new DeviceManagerEntities()) 
     { 
      ctx.AddToFiles(file); 

      ctx.SaveChanges(); 

      var files = ctx.Files 
       .ToList(); 
      dgAddFiles.DataSource = files; 
      dgAddFiles.DataBind(); 
      UpdatePanel3.Update(); 
     } 
    } 
    } 

ответ