2017-12-05 18 views
0

AsyncFileUpload가 작동합니다. AsyncFileUpload 컨트롤을 반복 할 LinkButton을 누르면 파일 이름이 사라집니다. 파일 이름을 가져 와서 저장할 수있는 방법이 있습니까? FileName이 작동하지 않습니다. 코드 숨김 공유에별로 관심이 없지만이 문제를 해결하는 데 필요한 경우 그렇게 할 수 있습니다. 여기UpdatePanel의 Repeater에있는 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 이벤트를 시도 : 먼저하는 LinkButton와 클릭 이벤트를 제거하는 명령 이름을 추가

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

답변