【问题标题】:Adressing a fileupload within a repeater处理转发器中的文件上传
【发布时间】:2011-12-13 10:57:02
【问题描述】:

所以我的转发器中有我的文件上传

  <asp:Content ID="Content3" ContentPlaceHolderID="content" Runat="Server">
<asp:Repeater ID="rptVrijstellingen" runat="server">

        <HeaderTemplate></HeaderTemplate>
        <ItemTemplate>
        <h2><%# Eval("tblExternVak.ExternvakNaam") %></h2>
        <h4>Selecteer een bestand om te uploaden:</h4>
       Gelieve het bestand de naam te geven van het overeenkomstige vak om de verwerking 
           vlot te laten verlopen.

           <br /><br />  <br />
           <asp:FileUpload id="FileUpload1"                 
           runat="server">
           </asp:FileUpload>
       <br /><br />
       <hr />
       <br />
         <br />
        <asp:Button id="UploadButton" 
           Text="Upload file"
           OnClick="UploadButton_Click"
           runat="server">
       </asp:Button>     
       <br />    
    <br />
            </ItemTemplate>
        <SeparatorTemplate><hr /></SeparatorTemplate>
        </asp:Repeater>    
       <asp:CheckBox id="CBupload" runat="server" />
       <asp:Label id="lblUpload" runat="server"> Geleverd aan Mevrouw Van Orlé</asp:Label>
       <asp:Label id="UploadStatusLabel" runat="server" ForeColor="Red"></asp:Label>   
</asp:Content>

我想从我的类文件中解决它

   if (FileUpload1.HasFile)
    {
        try
        {

            String fileName = FileUpload1.FileName;
            savePath += fileName;
            FileUpload1.SaveAs(Server.MapPath(savePath));
            tblBijlage s = new tblBijlage();
            s.bijlageTitel = fileName;
            s.bijlageURL = savePath;
            s.bijlageType = "1";
            s.fk_externvakID = 2;
            BLLstudent BLLstudent = new BLLstudent();
            BLLstudent.insertFile(s);
        }

        catch (Exception ex)
        {
            UploadStatusLabel.Text = ex.Message;
        }
    }
    else
    {
      UploadStatusLabel.Text = "Gelieve een bestand te kiezen";
    }
    }
}

问题是它在转发器中找不到 fileupload1 和任何其他声明的东西,谁能给我一个关于如何解决转发器中的上传的解决方案? (我用 page_load 中的数据填充转发器,所以它在加载时存在,所以我知道这不是问题)

提前谢谢你:)

【问题讨论】:

    标签: c# asp.net .net linq


    【解决方案1】:

    您必须迭代Repeater控件的Items集合并使用FindControl方法获取FileUpload1对象的引用。

    foreach (RepeaterItem item in rptVrijstellingen.Items)
     {
        FileUpload file=(FileUpload)item.FindControl("FileUpload1");
        String fileName = file.FileName;
        FileUpload1.SaveAs(Server.MapPath(savePath + fileName));
        ....
      }
    

    【讨论】:

    【解决方案2】:

    使用rptVrijstellingen.Items[rowNumber].FindControl("FileUpload1") as FileUpload,其中rowNumber 是您要访问的行的编号。

    【讨论】:

      猜你喜欢
      • 2021-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-04
      • 1970-01-01
      • 2017-02-24
      • 1970-01-01
      相关资源
      最近更新 更多