2017-12-05 7 views
0

AsyncFileUploadが機能します。 AsyncFileUploadコントロールを繰り返すLinkBut​​tonを押すと、ファイル名が消えるだけです。ファイル名を取得して保存する方法はありますか? FileNameは機能しません。この問題を解決する必要がある場合は、コードビハインドの共有に熱心ではありませんが、そうすることがあります。ここUpdatePanelのリピータのAsyncFileUpload

protected void RptRequest_ItemCommand(object source, RepeaterCommandEventArgs e) 
{ 
    if (e.CommandName == "AddRequest") 
    { 
     FileUpload myFileUpload = (FileUpload)e.Item.FindControl("FileUpload"); 
     if (myFileUpload.HasFile) 
     { 
      try 
      { 
       string filename = Path.GetFileName(myFileUpload.FileName); 
       myFileUpload.SaveAs(Server.MapPath("~/") + filename); 
       myStatusLabel.Text = "Upload Success"; 
      } 
      catch (Exception ex) 
      { 

       myStatusLabel.Text = "Upload Fail" + ex.Message; 
      } 
     } 
     else 
     { 

      myStatusLabel.Text = "myFileUpload Has No File"; 
     } 
    }  
} 

読む詳細:仕事で取得する

<asp:LinkButton ID="LbAddRequest" runat="server" 
    CommandName="AddRequest"></asp:LinkButton> 
<span>Add another request</span> 

そして、コードビハインドでこのItemCommandイベントをしてみてください:まずLinkBut​​tonコントロールとクリックイベントを削除するには、コマンド名を追加

<asp:UpdatePanel ID="LibraryResourceUpdatePanel" runat="server"> 
     <ContentTemplate> 
      <div class="field-group list-of-resource"> 
       <asp:Repeater ID="RptRequest" runat="server" OnItemDataBound="RptRequest_ItemDataBound"> 
        <ItemTemplate> 
         <div class="resource"> 
          <div class="remove-input"> 
           <asp:LinkButton ID="LbRemoveRequest" CssClass="ic fa fa-minus-circle" runat="server" OnClick="LbRemoveRequest_Click" CausesValidation="false"></asp:LinkButton> 
           <span>Remove</span> 
          </div> 
          <h2>Details of Resources 
         <span class="counter"> 
          <asp:Literal ID="LitCount" runat="server"></asp:Literal> 
         </span> 
          </h2> 
          <ul> 
           <li> 
            <fieldset class="form-group"> 
             <legend>Accession No.</legend> 
             <asp:TextBox ID="TxbAccessionNumber" CssClass="form-control" runat="server" /> 
             <asp:RequiredFieldValidator runat="server" ControlToValidate="TxbAccessionNumber" ErrorMessage="Email is required" ForeColor="Red" Display="Dynamic" /> 
            </fieldset> 
           </li> 
           <li> 
            <fieldset class="form-group"> 
             <legend>Details</legend> 
             <asp:TextBox ID="TxbDetails" runat="server" Rows="4" TextMode="MultiLine" /> 
             <asp:RequiredFieldValidator runat="server" ControlToValidate="TxbDetails" ErrorMessage="Details are required" ForeColor="Red" Display="Dynamic" /> 
            </fieldset> 
           </li> 
           <li> 
            <fieldset class="form-group"> 
             <legend>Image</legend> 
             <ajaxToolkit:AsyncFileUpload runat="server" 
              ID="FileUpload" OnUploadedComplete="FileUpload_UploadedComplete" ClientIDMode="AutoID" PersistFile="true"/> 
             <asp:RequiredFieldValidator runat="server" ControlToValidate="FileUpload" ErrorMessage="File Upload required" ForeColor="Red" Display="Dynamic" /> 
            </fieldset> 
           </li> 
          </ul> 
         </div> 
        </ItemTemplate> 
       </asp:Repeater> 
      </div> 
      <div class="add-input"> 
       <asp:LinkButton ID="LbAddRequest" CssClass="ic fa fa-plus-circle" runat="server" OnClick="LbAddRequest_Click" CausesValidation="false" ></asp:LinkButton> 
       <span>Add another request</span> 
      </div> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="LbAddRequest" EventName="click" /> 
     </Triggers> 
    </asp:UpdatePanel> 

答えて