programing

업데이트 패널에 중첩되어 있을 때 파일 업로드가 작동하지 않습니까? C#

abcjava 2023. 8. 24. 21:45
반응형

업데이트 패널에 중첩되어 있을 때 파일 업로드가 작동하지 않습니까? C#

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                        <asp:FileUpload onchange="clickTheButton();" ID="FileUpload1" runat="server" />
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="Button1" />
                </Triggers>
</asp:UpdatePanel>

버튼 1은 업데이트 패널 외부에 있으며 사용자가 업로드 상자에 파일을 추가할 때 실행되는 Javascript는 다음과 같습니다.

function clickTheButton() {
            document.getElementById('<%= Button1.ClientID %>').click();
        }

문제는 간단합니다.파일업로드1.HasFile == false입니다.이유는 모르겠지만 업데이트 패널에 넣으면 작동이 멈춥니다.

저는 이것에 대한 다른 실마리들을 보았습니다.하지만 그들 중 누구도 왜 이런 일이 일어나는지에 대해 대답하지 않고, 단지 다운로드할 수 있는 것들을 가리킬 뿐입니다.

편집: 정말로 제가 이것을 하고 싶어하는 주된 이유는 제가 …을 얻을 수 있기 때문입니다.파일 업로드 중...클라이언트가 서버에 업로드하는 동안 팝업할 태그이며 완료되면 데이터 목록에 표시합니다.업데이트 진행률이 작동하지 않습니다.

기본적으로 당신은 파일을 보내기 위해 당신의 버튼이 전체 포스트백을 하도록 만들기만 하면 됩니다.또한 이것을 가지고 있는지 확인합니다.Form.Enctype = "modart/form-data". 코드에 설정하거나 해당 페이지에 입력할 수 있습니다.AsyncPostbacks는 언급한 것처럼 보안상의 이유로, 해킹 없이는 파일을 사용할 수 없습니다.

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
      <ContentTemplate>
           <asp:FileUpload onchange="clickTheButton();" ID="FileUpload1" runat="server" />
      </ContentTemplate>
      <Triggers>
         <asp:PostBackTrigger ControlID="Button1" />
      </Triggers>
 </asp:UpdatePanel>

파일 업로드는 부분 포스트백과 함께 작동하지 않습니다.페이지 로드 시 이 줄을 추가하면 됩니다.

ScriptManager.GetCurrent(this).RegisterPostBackControl(this.YourControlID);

또는 사용PostBackTrigger.

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

또는 Ajax Control Toolkit에 정의된 특수 AsyncFileUpload 컨트롤이 필요합니다.

<ajaxToolkit:AsyncFileUpload OnClientUploadError="uploadError"
     OnClientUploadComplete="uploadComplete" runat="server"
     ID="AsyncFileUpload1" Width="400px" UploaderStyle="Modern"
     UploadingBackColor="#CCFFFF" ThrobberID="myThrobber" />

여기서 확인하실 수 있습니다.

보안을 위해 브라우저에서는 Javascript를 통해 파일을 게시할 수 없습니다.내 문서 폴더의 내용을 비동기식으로 서버에 제출하기 위해 자바스크립트를 조금 작성할 수 있다고 상상해 보십시오.

따라서 UpdatePanel에서 사용하는 XMLHttpRequest와 같이 양식을 게시하는 Javascript-ish 메서드는 작동하지 않습니다.

이 게시물은 3.5 SP1에 있는 경우 적절한 해결 방법을 설명합니다. 링크

이 게시물에서는 Ajax Control Toolkit을 사용하지 않을 경우 몇 가지 해결 방법을 설명합니다. 링크

언급URL : https://stackoverflow.com/questions/2107952/fileupload-doesnt-work-when-nested-in-updatepanel-c-sharp

반응형