2013-09-04 3 views
1

master 페이지도 사용하는 asp.net 웹 양식 페이지가 있습니다.FileUpload의 업데이트 패널에서 버튼 이벤트가 발생하지 않습니다.

이것은 텍스트를 표시하고 양식을 가진 간단한 페이지입니다.이 페이지에서는 .doc, .docx & pdf 형식으로 이력서를 업로드 할 수도 있습니다.

이 코드 문제는 내가 지금까지 내가 차단되고 있는지 알 수 없습니다입니다

protected void btnUploadCV_Click(object sender, EventArgs e) 
    { 

// code is here 
    } 

뒤에 어떤 이유로 <asp:Button ID="btnUploadCV" runat="server" Text="Upload" CssClass="btnUpload" onclick="btnUploadCV_Click"/>

<%@ Page Title="" Language="C#" MasterPageFile="~/en/SiteMasterPage.master" AutoEventWireup="true" CodeFile="career.aspx.cs" Inherits="career" %> 
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> 
     <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"></asp:Content> 
     <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
      <!-- Content Page--> 
      <!-- page content wrapper --> 
      <div id="page-content-area" class="page-content-area"> 
       <div id="pg-left-bar" class="pg-left-bar"> 
        <div class="page-title"> 
         <h5><asp:Label ID="lblPageTitle" CssClass="page-title-lbl" runat="server" Text="Introduction"></asp:Label></h5> 

        </div> 
        <div class="page-text"> 
         <asp:Label ID="lblPageContents" runat="server" Text=""></asp:Label> 
        </div> 
        <div class="career-form-wrapper"> 
         <!-- UpdatePanel --> 
         <asp:UpdatePanel ID="updPnlArticles" runat="server" UpdateMode="Conditional"> 
          <ContentTemplate> 
           <asp:Panel ID="pnlCareerForm" runat="server"> 
            <div class="row-form"> 
             <div class="row-lbl-wrapper"> <span class="row-req">*</span> 

              <asp:Label ID="lblFirstName" runat="server" CssClass="row-label" Text="First Name:"></asp:Label> 
             </div> 
             <asp:TextBox ID="txtFirstName" runat="server" CssClass="row-input"></asp:TextBox> 
             <asp:RequiredFieldValidator ID="rfFN" runat="server" ValidationGroup="Careers" ErrorMessage="*" CssClass="row-validate" ControlToValidate="txtFirstName"></asp:RequiredFieldValidator> 
            </div> 
            <div class="row-form"> 
             <div class="row-lbl-wrapper"> <span class="row-req">*</span> 

              <asp:Label ID="lblFamilyName" runat="server" CssClass="row-label" Text="Family Name:"></asp:Label> 
             </div> 
             <asp:TextBox ID="txtFamilyName" runat="server" CssClass="row-input"></asp:TextBox> 
             <asp:RequiredFieldValidator ID="rfLN" runat="server" ValidationGroup="Careers" ErrorMessage="*" CssClass="row-validate" ControlToValidate="txtFamilyName"></asp:RequiredFieldValidator> 
            </div> 
            <div class="row-form"> 
             <div class="row-lbl-wrapper"> <span class="row-req">*</span> 

              <asp:Label ID="lblEmail" runat="server" CssClass="row-label" Text="Email:"></asp:Label> 
             </div> 
             <asp:TextBox ID="txtEmail" runat="server" CssClass="row-input"></asp:TextBox> 
             <asp:RequiredFieldValidator ID="rfvEmail" runat="server" ValidationGroup="Careers" ErrorMessage="*" CssClass="row-validate" ControlToValidate="txtEmail"></asp:RequiredFieldValidator> 
             <asp:RegularExpressionValidator ID="revEmail" runat="server" ErrorMessage="*" CssClass="row-validate" ControlToValidate="txtEmail" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ValidationGroup="Careers"></asp:RegularExpressionValidator> 
            </div> 
            <div class="row-form"> 
             <div class="row-lbl-wrapper"> 
              <asp:Label ID="lblPhone" runat="server" CssClass="row-label" Text="Phone Number:"></asp:Label> 
             </div> 
             <asp:TextBox ID="txtPhone" runat="server" CssClass="row-phone" Text=""></asp:TextBox> 
             <asp:RegularExpressionValidator ID="revPhone" runat="server" ErrorMessage="*" ValidationGroup="Careers" ControlToValidate="txtPhone" ValidationExpression="^([\+]?[0-9]{1,3}[\s.-][0-9]{1,12})([\s.-]?[0-9]{1,4}?)$"></asp:RegularExpressionValidator> 
             <div class="tooltip tooltip-override" title="Accepts local format (eg. 04 1234567, 050 1234567 or 04-1234567, 050-1234657)<br />and international format (eg. +971 41234567, +971-41234567).<br />Also accepts an optional extention of up to four digits (eg. 04 1234567 289 or +974 41234567 289)"> 
              <asp:Image ID="imgtooltip" CssClass="tooltip-img" runat="server" ImageUrl="~/images/tooltipgreen.png" /> 
             </div> 
            </div> 
            <div class="row-form"> 
             <div class="row-lbl-wrapper"> 
              <asp:Label ID="lblFax" runat="server" CssClass="row-label" Text="Fax Number:"></asp:Label> 
             </div> 
             <asp:TextBox ID="txtFax" runat="server" CssClass="row-input"></asp:TextBox> 
             <asp:RegularExpressionValidator ID="revFax" runat="server" ErrorMessage="*" ValidationGroup="Careers" ControlToValidate="txtFax" ValidationExpression="^([\+]?[0-9]{1,3}[\s.-][0-9]{1,12})$"></asp:RegularExpressionValidator> 
             <div class="tooltip tooltip-override" title="Accepts local format (eg. 04 1234567 or 040-1234567)<br />and international format (eg. +974 41234567 or +974-41234567)"> 
              <asp:Image ID="Image1" CssClass="tooltip-img" runat="server" ImageUrl="~/images/tooltipgreen.png" /> 
             </div> 
            </div> 
            <div class="row-form"> 
             <div class="row-lbl-wrapper"> 
              <asp:Label ID="lblAddress" runat="server" CssClass="row-label" Text="Address:"></asp:Label> 
             </div> 
             <asp:TextBox ID="txtAddress" runat="server" CssClass="row-input-multiline" TextMode="MultiLine"></asp:TextBox> 
            </div> 
            <div class="row-form"> 
             <div class="row-lbl-wrapper"> <span class="row-req">*</span> 

              <asp:Label ID="lblCountry" runat="server" CssClass="row-label" Text="Country:"></asp:Label> 
             </div> 
             <asp:DropDownList ID="ddCountry" runat="server" CssClass="row-dd"></asp:DropDownList> 
             <asp:CascadingDropDown ID="csdCountry" runat="server" Category="Country" TargetControlID="ddCountry" PromptText="-- Select --" LoadingText="[Loading Countries...]" ServiceMethod="FetchCountries" ServicePath="~/wsCountryCity.asmx" PromptValue="0"></asp:CascadingDropDown> 
             <asp:RequiredFieldValidator ID="rfCountry" ValidationGroup="Careers" ControlToValidate="ddCountry" CssClass="row-validate" InitialValue="0" runat="server" ErrorMessage="*"></asp:RequiredFieldValidator> 
            </div> 
            <div class="row-form"> 
             <div class="row-lbl-wrapper"> 
              <asp:Label ID="lblCity" runat="server" CssClass="row-label" Text="City:"></asp:Label> 
             </div> 
             <asp:DropDownList ID="ddCity" runat="server" CssClass="row-dd"></asp:DropDownList> 
             <asp:CascadingDropDown ID="csdCity" runat="server" Category="City" TargetControlID="ddCity" ParentControlID="ddCountry" PromptText="-- Select --" LoadingText="[Loading Cities...]" ServiceMethod="FetchCities" ServicePath="~/wsCountryCity.asmx" PromptValue="0"></asp:CascadingDropDown> 
            </div> 
            <div class="row-form"> 
             <div class="row-lbl-wrapper"> <span class="row-req">*</span> 

              <asp:Label ID="Label1" runat="server" CssClass="row-label" Text="CV:"></asp:Label> 
             </div> 
             <asp:FileUpload ID="FileUpload1" runat="server" CssClass="fileUpload" /> 
             <div id="dFileUpload1" class="btnUploadHack">Browse</div> 
             <asp:Button ID="btnUploadCV" runat="server" Text="Upload" CssClass="btnUpload" onclick="btnUploadCV_Click" /> 
             <asp:RequiredFieldValidator ID="rfvF1" runat="server" ValidationGroup="Careers" ErrorMessage="*" CssClass="row-validate" ControlToValidate="FileUpload1"></asp:RequiredFieldValidator> 
             <asp:Label ID="lblImageMSG" runat="server" Text=""></asp:Label> 
            </div> 
            <div class="contactus-row"> 
             <asp:Button ID="btnSave" runat="server" CssClass="btnContactUsSave" Text="Send Message" onclick="btnSave_Click" ValidationGroup="Careers" /> 
            </div> 
           </asp:Panel> 
           <asp:Panel ID="pnlCareerMSG" runat="server"></asp:Panel> 
          </ContentTemplate> 
         </asp:UpdatePanel> 
         <!-- UpdatePanel --> 
        </div> 
       </div> 
       <div class="pg-right-bar"> 
        <asp:Image ID="imgSideBanner" runat="server" /> 
       </div> 
      </div> 
      <!-- page content wrapper --> 
      <!-- Content Page--> 
     </asp:Content> 

코드를 를 트리거 할 수없는 생각이다 내부 버튼은 발사되지 않습니다. 그렇습니다. 심지어는 불을 쏘지 않아도 테스트 할 수있는 간단한 단추를 넣었습니다.

enter image description here

나는 그것을 확인하거나 문제를 만드는 업데이트 패널의 경우 모르겠습니다.

은 내가

<asp:Button ID="btnUploadCV" runat="server" Text="Upload" CssClass="btnUpload" onclick="btnUploadCV_Click" CausesValidation="false" /> 

protected void btnUploadCV_Click(object sender, EventArgs e) 
{ 
    Page.Validate(); 
if (Page.IsValid == true) 
{ 

// your code here 

    } 
} 

내 문제는 심지어 어떤 이유로 버튼의 코드 블록을 입력 deosn't입니다 설정을 시도 작업

을 일부러 트리거를 사용하여 시도했다.

그냥 추가로 국가 및 도시에 대한 계단식 드롭 다운을 사용하고 있습니다. 문제가있는 경우 확실하지 않습니다. 또한 두 패널 중 하나에 양식 컨트롤이 있고 성공적인 제출 후이 패널을 숨 깁니다. & 다른 페이지 표시 이 모든 코드에 성공 메시지가 표시된 패널 UpdatePanel.

유일한 방법 밖에 난 오히려 모든 파일 업로드 컨트롤에 대한

UPDATE를 각각의 버튼을 필요없이 모든 파일을 기본 폼 버튼을 Send Message 업로드하는 것입니다 볼이의 : 나는 또한이 approach도 문제가 해결되지 않는 시도

+0

:처럼 업로드 버튼의

<Triggers> <asp:PostBackTrigger ControlID="btnUploadCV" /> </Triggers> 

그리고 나머지는 OnClick 핸들러 보인다. 당신은 해결책을 찾을 수 있습니다. (http://forums.asp.net/p/1105208/1689084.aspx) – afzalulh

+0

파일 업로드는 부분적인 다시 게시를 지원하지 않기 때문에 업데이트 패널에있을 때 작동하지 않습니다. 클라이언트 스크립트 방법 대신 스크립트 관리자를 사용하는 방법 –

답변

2

우리는 AJAX 그러나 AJAX는 서버에 파일을 업로드 할 수 없습니다 전화 오늘날

업데이트 패널 부분 포스트 백에 사용되는 개념을 이해하시기 바랍니다 AJAX는 F를 지원하지 않는 XMLHttpRequest를 사용 ile 업로드.

그렇다면 Microsoft의 버그라고 생각하지 마십시오. 오늘도 우리는 AJAX를 사용하여 FileUpload를 지원할 자바 스크립트 라이브러리가 없습니다. 인터넷에서 찾은 모든 AJAX 파일 업로드 프로그램은 플래시를 사용합니다.

이것은 프로토콜의 제한 사항입니다. 다른 jquery 플러그인을 사용하여 파일을 업로드하십시오. 업데이트 패널이 작동하지 않습니다.

+1

동의 방법이 다른 접근 방식으로 전환하더라도 작동하지 않습니다. 나는'UpdatePanel'을 모아서 모두 제거한 다음이 오류를받습니다.'유효하지 않은 포스트 백 또는 콜백 인수. 이벤트 유효성 검사는 페이지의 <% @ Page EnableEventValidation = "true"%>에서 를 사용하여 활성화됩니다. '업로드 버튼을 클릭하십시오. '나는 또한 AsyncFileUpload' 그 프로젝트에서 일하고있는 다른 프로젝트에서 doent 화재 (나는 그것이 AsyncFileUpload1_UploadedComplete 블록에 대한 코드를 입력하지 않는다는 것을 의미한다.) VS 또는 무엇인지 확실하지 않습니까? – Learning

2

FileUpload 컨트롤은 페이지에 <asp:ScriptManager /> 배치)

1 단계 아래 다음 응용 프로그램에서이 작업을 비동기 postbacks.To 작동하지 않습니다.

응용 프로그램에서 마스터 페이지를 사용하고 웹 페이지가 마스터 페이지를 사용하는 경우 스크립트 관리자를 마스터 페이지에 배치하십시오. 마스터 페이지에 스크립트 관리자가 없도록하려면 스크립트 관리자를 특정 웹 페이지에 배치 할 수도 있습니다. 이 후

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 

2), 당신의 업데이트 패널의 버튼 btnUploadCV에 대한 <Triggers>를 추가합니다. 그것은 알려진 문제입니다

protected void btnUploadCV_Click(object sender, EventArgs e) 
    { 
      if (FileUpload1.HasFile) 
      {     
       fileName = FileUpload1.FileName; 
       FileUpload1.SaveAs("~/UploadedData/" + fileName); 
       ... 
      } 
    } 
+0

이 접근법을 시도했습니다. 이전 일이지만 didnt 일. 이것은 나를 미치게합니다. – Learning

+2

도움이 될지 확인하십시오 : http://www.codeproject.com/Questions/272796/Button-is-not-workingwith-Update-Panel-in-asp-net 또는 이 중 하나 : http://www.codeproject.com/Articles/482800/FileplusUploadplusinplusUpdateplusPanel –

+0

또한 FileUpload 및 uploadButton을 내에 직접 배치하십시오. –

관련 문제