首页 > 解决方案 > 更新面板内的文件上传控件

问题描述

  1. 我有一个更新面板,在该更新面板中我有一个转发器控件,在该转发器控件中我有文件上传控件,我在每一行上附加文件。

  2. 我有另一个更新面板,在此我有一个保存按钮,每当我尝试单击此保存按钮并循环通过上述中继器以检查文件上传控件中是否存在文件时,它总是给我错误,即文件上传控件被清除.

我想知道如何使用现有方案将文件保存在文件上传控件中。

谢谢

标签: c#asp.net

解决方案


您需要为 PostBack 注册 Button。因此,将触发器添加到包含该按钮的 UpdatePanel。

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>

        <asp:Repeater ID="Repeater1" runat="server">
            <ItemTemplate>

                <asp:FileUpload ID="FileUpload1" runat="server" />

            </ItemTemplate>
        </asp:Repeater>

    </ContentTemplate>
</asp:UpdatePanel>


<asp:UpdatePanel ID="UpdatePanel2" runat="server">
    <ContentTemplate>

        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

    </ContentTemplate>
    <Triggers>

        <asp:PostBackTrigger ControlID="Button1" />

    </Triggers>
</asp:UpdatePanel>

现在您可以处理按钮单击上的文件。

protected void Button1_Click(object sender, EventArgs e)
{
    foreach (RepeaterItem item in Repeater1.Items)
    {
        FileUpload fu = item.FindControl("FileUpload1") as FileUpload;

        if (fu.HasFile)
        {
            //process file here
        }
    }
}

推荐阅读