【问题标题】:Don't Work FileUpload in UpdatePanel不要在 UpdatePanel 中工作 FileUpload
【发布时间】:2014-02-22 16:39:23
【问题描述】:
<asp:ScriptManager runat="server" ID="S"></asp:ScriptManager>
<asp:UpdatePanel runat="server" ID="U" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Panel runat="server" ID="U1">
            <asp:Button runat="server" ID="Btnnew" Text="new" OnClick="Btnnew_Click"/>
        </asp:Panel>
        <asp:Panel runat="server" ID="U2">
            <asp:FileUpload runat="server" ID="FU" />
            <asp:Button  runat="server" ID="Btnok" OnClick="Btnok_Click"  Text="ok"/>
        </asp:Panel>
    </ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="btnok" />
    </Triggers>
</asp:UpdatePanel>

服务器代码是

protected void Page_Load(object sender, EventArgs e)
{
    U1.Visible = true;
    U2.Visible = false;
    U.Update();
}
protected void Btnnew_Click(object sender, EventArgs e)
{
    U1.Visible = false;
    U2.Visible = true;
    U.Update();
}
protected void Btnok_Click(object sender, EventArgs e)
{
    U.Update();
    FU.PostedFile.SaveAs("");
}

但文件上传为空。 没人能帮我!!!

【问题讨论】:

  • 此代码在 Web 用户控件中有效,但在网页中无效

标签: c# asp.net ajax asp.net-ajax


【解决方案1】:

很遗憾,您不能使用UpdatePanel 中的另一个容器来保存FileUpload 控件。但你可以这样做:

在标记中:

<asp:ScriptManager runat="server" ID="S"></asp:ScriptManager>
<asp:UpdatePanel runat="server" ID="U" UpdateMode="Conditional">
    <ContentTemplate>
            <asp:Button runat="server" ID="Btnnew" Text="new" OnClick="Btnnew_Click" />
            <asp:FileUpload runat="server" ID="FU" />
            <asp:Button runat="server" ID="Btnok" OnClick="Btnok_Click" Text="ok" />
    </ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="Btnok" />
    </Triggers>
</asp:UpdatePanel>

并更改您的代码以隐藏/取消隐藏控件,并保存文件:

protected void Page_Load(object sender, EventArgs e)
{
    Btnnew.Visible = true;
    FU.Visible = false;
    Btnok.Visible = false;
    U.Update();
}
protected void Btnnew_Click(object sender, EventArgs e)
{
    Btnnew.Visible = false;
    FU.Visible = true;
    Btnok.Visible = true;
    U.Update();
}
protected void Btnok_Click(object sender, EventArgs e)
{
    if (FU.HasFile)
    {
        string fileName = FU.FileName;
        FU.SaveAs(Server.MapPath("~/Images/") + fileName);// Assuming you have Images folder in the root
    }
    U.Update();
}

您可以使用&lt;div&gt;&lt;table&gt;,如果您愿意,可以使用 css 使它们看起来像一个面板。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-07
    • 2014-12-10
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多