Asp.net 异步文件上传和转发器

Asp.net 异步文件上传和转发器,asp.net,.net-3.5,repeater,c#-2.0,asyncfileupload,Asp.net,.net 3.5,Repeater,C# 2.0,Asyncfileupload,我有一个asyncfileupload控件和一个中继器,我想用它来显示添加的文件列表。在FileUploadedComplete事件中,我将新文件的名称和大小添加到数据表中,并使用它绑定中继器。我可以选择一个文件并添加它(SaveAs()),将信息添加到数据表(我可以看到它在那里),但是在调用repeater的databind()之后,什么都没有发生,无法看到文件数据。 这就是我所拥有的(淡化版): 文件上载和中继器都位于更新面板内。update post要包含更新面板标记,请将异步文件上载控件

我有一个asyncfileupload控件和一个中继器,我想用它来显示添加的文件列表。在FileUploadedComplete事件中,我将新文件的名称和大小添加到数据表中,并使用它绑定中继器。我可以选择一个文件并添加它(SaveAs()),将信息添加到数据表(我可以看到它在那里),但是在调用repeater的databind()之后,什么都没有发生,无法看到文件数据。 这就是我所拥有的(淡化版):


文件上载和中继器都位于更新面板内。

update post要包含更新面板标记,请将异步文件上载控件放在一个更新面板中,将中继器放在另一个更新面板中。upload Complete(即OnClient LoadComplete)的客户端事件,执行一个uu doPostBack('update_panel_id_of_repeater')。
<asp:UpdatePanel runat="server" ID="upnlFU">
    <ContentTemplate>
        <ajaxToolkit:AsyncFileUpload
            runat="server"
            ID="fuAttchedDocs" 
            ThrobberID="myThrobber" 
            UploaderStyle="Modern"
            onuploadedcomplete="fuAttchedDocs_UploadedComplete" 
            onuploadedfileerror="fuAttchedDocs_UploadedFileError" />

        <asp:Repeater runat="server" ID="rptAttachments">
            <HeaderTemplate>
                <table>
                    <tr>
                        <td>File Name</td>
                        <td>File Size</td>
                    </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td><%# Eval("FileName")%></td>
                    <td><%# Eval("FileSize")%></td>
                </tr>
            </ItemTemplate>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater>
    </ContentTemplate>
</asp:UpdatePanel>
DataTable dtAttachments;

protected void Page_Load(object sender, EventArgs e)
    if (!Page.IsPostBack)
    {
        dtAttachments = new DataTable();
        dtAttachments.Columns.Add("FileName", Type.GetType("System.String"));
        dtAttachments.Columns.Add("FileSize", Type.GetType("System.Int32"));
        dtAttachments.AcceptChanges();
    }
    else
    {
        dtAttachments = (DataTable)ViewState["Attachments"];
    }
    BindAndSaveAttachmentData();
}

void BindAndSaveAttachmentData()
{
    ViewState["Attachments"] = dtAttachments;
    rptAttachments.DataSource = dtAttachments;
    rptAttachments.DataBind();
}

protected void fuAttchedDocs_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
{
    string sFileName = fuAttchedDocs.FileName;
    string sFileSize = e.FileSize;
    fuAttchedDocs.SaveAs(FilePath.TEMP_FOLDER + sFileName); // Saving to d:\blah\yada temporary folder
    dtAttachments.Rows.Add(new object[] { sFileName, int.Parse(sFileSize) });
    BindAndSaveAttachmentData();
}