2011-12-13 45 views
3

所以,我有我的中繼中繼器內Adressing一個FileUpload

<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> 

內我的文件上傳,我想從我的類文件ADRESS它

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所以它存在於負載,所以我知道這是沒有問題的)

預先感謝您:)

回答

3

你必須遍歷Repeater控件的項目收集和使用FindControl方法獲取FileUpload1對象的引用。

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

你能舉一個小例子嗎?我有點新的C#:$ –

+0

Tyvm非常好,至極我可以給你一個+1但是即時新::( –

+0

似乎我現在可以:) –

0

使用rptVrijstellingen.Items[rowNumber].FindControl("FileUpload1") as FileUpload其中rowNumber是一個數字,你要訪問的一行。