在formview中的asp.net文件上传总是返回false(不在updatepanel中)

时间:2013-04-28 14:33:29

标签: asp.net file-upload formview

我在formview edittemplate

中使用fileupload控件
    <asp:FileUpload ID="fileup_profilfoto" runat="server" />
      <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Sadece şu formatlar (.jpg, .bmp, .png, .gif)" ValidationExpression="^.*\.(jpg|JPG|png|PNG|bmp|BMP|gif|GIF)$" ControlToValidate="fileup_profilfoto" ForeColor="#00C0CC"></asp:RegularExpressionValidator>

它正在工作。但我添加了一个更新面板然后它没有工作,然后我重新启动更新面板。但它仍然返回false(hasfile)

  protected void frmviewProfil_ItemUpdating(object sender, FormViewUpdateEventArgs e)
    {
        try
        {
            FileUpload fileup_profilfoto = (FileUpload)frmviewProfil.FindControl("fileup_profilfoto");
            if (fileup_profilfoto.HasFile)
            {
                //do something
            }
           else
            {
            //do something
            }
          }
      }

总是去其他范围。

3 个答案:

答案 0 :(得分:3)

我使用触发器来实现

 <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="conditional">
  <Triggers>
    <asp:PostBackTrigger ControlID="Button1" />
 </Triggers>
 <ContentTemplate>
   <asp:Label ID="Label1" runat="server"></asp:Label><br /><br />
   <asp:FileUpload ID="FileUpload1" runat="server" />
   <asp:Button ID="Button1" runat="server" Text="Upload" OnClick="Button1_Click" />
  </ContentTemplate>
 </asp:UpdatePanel>

背后的代码

  protected void Button1_Click(object sender, EventArgs e)
  {
      if (FileUpload1.HasFile)
      {
          Label1.Text = FileUpload1.FileName;
      }
  }

答案 1 :(得分:0)

您是否对fileupload控件的属性执行了任何操作,例如将autopost back值设置为false?如果为假,请尝试将此设置为true。

答案 2 :(得分:0)

当我遇到这个问题时,我遇到了这个问题,并认为我发布了我的问题和解决方案。

确保您尝试上传的文件大于0字节。我尝试上传一些空白文本文件进行测试,每个文件都正确设置了FileName属性,但HasFile总是假的。向文件中添加一些文本会为其提供一些内容,并且文件能够成功上传。